位置: 编程技术 - 正文
推荐整理分享MySQL 常见数据拆分办法(mysql拆表迁移数据),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql数据库拆分,mysql数据分割方式,mysql拆分分区,mysql数据分割方式,mysql拆表 和分区,mysql数据分割方式,mysql拆表,mysql数据分割方式,内容如对您有帮助,希望把文章链接给更多的朋友!
在生产环境中,由于业务的增长或者业务的拆分,DBA经常需要拆库操作。那么我们常见的拆库手段有哪些呢?
我这里提供几种解决办法:
1. 使用mysqldump 把表逻辑倒出,然后再source 到其它地方2. 使用xtrabackup 把表、或者库逻辑备份出,然后再recovery出一个实例3. 使用MySQL自带的表空间转移(Transport)[这个需要MySQL 5.6.6 以上版本支持]
I: 先来看一下MySQL 的 Transport 表空间的特性吧
比如我们要把 tab_test1 从 db_A 移动到 db_B ,那么我们需要做这么一系列动作:
Step 1: use db_A; show create table tab_test1;(首先,拿到需要的表结构)Step 2: use db_B; create table tab_test1; alter tale tab_test1 discard tablespace;(discard tablespace 就是把ibd文件删掉,只留下.frm文件)(其次,到目标库删除掉idb文件)Step 4: use db_A; flush table test for export;(把相关表的内存数据写入到数据库)Step 5: 拷贝 tab_test1.ibd 文件到 db_B/ 目录下;(操作系统层执行拷贝ibd文件操作)Step 6: use db_A; unlock tables; (源库上解锁表)Step 7: use db_B; alter table tab_test1 import tablespace;(目标库执行表空间导入)
执行完上边几个步骤,我们就完成了 在库之间迁移 某些个表的操作了。
II: 再来看一下 xtrabackup 导出部分表,以达到迁移目的
Step 1: 我们需要使用xtrabackup 备份部分表
nohup perl /home/ddb/tmp/xtrabackup/bin/innobackupex-1.5.1 --ibbackup=/home/tmp/xtrabackup/bin/xtrabackup_ --user=root --password= --defaults-file=/home/my.cnf --slave-info --tables-file=/mnt/back_tables.txt /mnt/backup_1 Step 2: 应用日志,进行恢复操作
nohup perl /home/tmp/percona-xtrabackup-2.1.9-Linux-x_/bin/innobackupex-1.5.1 --ibbackup=/home/tmp/percona-xtrabackup-2.1.9-Linux-x_/bin/xtrabackup_ --export --apply-log --defaults-file=/home/node-1-1/backup-my.cnf /home/node-1-1/ > /tmp/r.log 2>&1 & Step 3: 重新起实例,配置复制关系,只复制部分表
my.cnf 文件配置: Replicate_Wild_Do_Table/Replicate_Wild_Ignore_Table 执行完上边几个步骤,我们就完成了表的迁移操作,并且新起了个实例,达到了分库的目的。
III:最后我们就看一下 mysqldump 的姿势吧
额, 这个就不多??铝税桑 mysqldump 做的事情就是 一些逻辑的导出, 倒出来的数据我们是可以用人肉可见的。 这个需要注意的一点就是 --single-transcation 选项 关于以上几种办法,我们在实际工作中需要 考虑 服务器的资源、内存容量等, 需要结合实际情况来使用 合适的办法进行拆库操作。
MYSQL数据库数据拆分之分库分表总结 数据存储演进思路一:单库单表单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到。
MySQL OOM 系列一 Linux内存分配 RDS(网易云关系数据库服务)上线已经有一段时间,陆续不断有产品迁入到了RDS中,在线上运维的过程中,也遇到了一些曾经没有考虑到,或者考虑的
MySQL OOM 系统二 OOM Killer 这里就涉及到一个问题,到底Kill掉谁呢?一般稍微了解一些Linux内核的同学第一反应是谁用的最多,就Kill掉谁。这当然是Linux内核首先考虑的一种重要
标签: mysql拆表迁移数据
本文链接地址:https://www.jiuchutong.com/biancheng/347918.html 转载请保留说明!上一篇:MySQL复制出错 Last_SQL_Errno:1146的解决方法(mysql复制命令)
下一篇:MYSQL数据库数据拆分之分库分表总结(mysql数据库数据备份)
友情链接: 武汉网站建设