《MysqL教程MysqL 常见数据拆分办法》要点:
本文介绍了MysqL教程MysqL 常见数据拆分办法,希望对您有用。如果有疑问,可以联系我们。
在生产环境中,由于业务的增长或者业务的拆分,DBA经常需要拆库 *** 作.那么我们常见的拆库手段有哪些呢?MysqL学习
我这里提供几种解决办法:MysqL学习
1. 使用MysqLdump 把表逻辑倒出,然后再source 到其它地方
2. 使用xtrabackup 把表、或者库逻辑备份出,然后再recovery出一个实例
3. 使用MysqL自带的表空间转移(Transport)[这个需要MysqL 5.6.6 以上版本支持]MysqL学习
I: 先来看一下MysqL 的 Transport 表空间的特性吧MysqL学习
比如我们要把 tab_test1 从 db_A 移动到 db_B,那么我们需要做这么一系列动作:MysqL学习
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 test122 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;(目标库执行表空间导入)MysqL学习
执行完上边几个步骤,我们就完成了 在库之间迁移 某些个表的 *** 作了.MysqL学习
II: 再来看一下 xtrabackup 导出部分表,以达到迁移目的MysqL学习
Step 1: 我们需要使用xtrabackup 备份部分表MysqL学习
nohup perl /home/ddb/tmp/xtrabackup/bin/innobackupex-1.5.1 --ibbackup=/home/tmp/xtrabackup/bin/xtrabackup_55 --user=root --password=123 --defaults-file=/home/my.cnf --slave-info --tables-file=/mnt/back_tables.txt /mnt/backup_1
Step 2: 应用日志,进行恢复 *** 作MysqL学习
nohup perl /home/tmp/percona-xtrabackup-2.1.9-linux-x86_64/bin/innobackupex-1.5.1 --ibbackup=/home/tmp/percona-xtrabackup-2.1.9-linux-x86_64/bin/xtrabackup_55 --export --apply-log --defaults-file=/home/node-1-1/backup-my.cnf /home/node-1-1/ > /tmp/r.log 2>&1 &
Step 3: 重新起实例,配置复制关系,只复制部分表MysqL学习
my.cnf 文件配置: Replicate_Wild_Do_table/Replicate_Wild_Ignore_table
执行完上边几个步骤,我们就完成了表的迁移 *** 作,并且新起了个实例,达到了分库的目的.
MysqL学习
III:最后我们就看一下 MysqLdump 的姿势吧MysqL学习
额,这个就不多铝税桑 MysqLdump 做的事情就是 一些逻辑的导出,倒出来的数据我们是可以用人肉可见的. 这个需要注意的一点就是 --single-transcation 选项
关于以上几种办法,我们在实际工作中需要 考虑 服务器的资源、内存容量等,需要结合实际情况来使用 合适的办法进行拆库 *** 作.MysqL学习
以上是内存溢出为你收集整理的MYSQL教程MySQL 常见数据拆分办法全部内容,希望文章能够帮你解决MYSQL教程MySQL 常见数据拆分办法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)