Code Bye

生产环境新增一个从库

        最近有个需求,需要在生产环境(写操作不是很频繁)新增一个从库,但是主库的数据量比较大,有100G+,而且里面同时有MYISAM和Innodb存储引擎的表。用mysqldump导出非常的慢,所以本人原本计划在原有从库上先使用flush tables with read lock,锁定写操作,再拷贝从库的数据文件到新从库上开启主从同步,这样更快点。但是本人看网上的相关资料,都说flush tables with read lock这个语句有很大的风险会引起阻塞,而且只对MYISAM的表有效,所以本人又开始纠结了,不知道该怎么办能够安全的进行数据拷贝
后来又想到一种方法,就是暂时先断开原有从库来进行数据文件的拷贝,拷贝完成后再start slave。但是这个操作本人有两点不确定的,一点是假如从库与主库断开时间较长(2小时左右),重新启动主从同步会不会有问题,第二点是假如在拷贝的时候,从库上有select查询,不知道会不会引起relay_log或别的日志的改变。
请各位给点建议或帮忙评估一下,用什么样的方法更合适呢?
解决方案

20

引用 LZ lvchenotl 的回复:

        最近有个需求,需要在生产环境(写操作不是很频繁)新增一个从库,但是主库的数据量比较大,有100G+,而且里面同时有MYISAM和Innodb存储引擎的表。用mysqldump导出非常的慢,所以本人原本计划在原有从库上先使用flush tables with read lock,锁定写操作,再拷贝从库的数据文件到新从库上开启主从同步,这样更快点。但是本人看网上的相关资料,都说flush tables with read lock这个语句有很大的风险会引起阻塞,而且只对MYISAM的表有效,所以本人又开始纠结了,不知道该怎么办能够安全的进行数据拷贝
后来又想到一种方法,就是暂时先断开原有从库来进行数据文件的拷贝,拷贝完成后再start slave。但是这个操作本人有两点不确定的,一点是假如从库与主库断开时间较长(2小时左右),重新启动主从同步会不会有问题,第二点是假如在拷贝的时候,从库上有select查询,不知道会不会引起relay_log或别的日志的改变。
请各位给点建议或帮忙评估一下,用什么样的方法更合适呢?

你肯定有备份(别告诉本人连备份都没有)。用备份恢复一个,然后设定binlog的replication就ok了。
不影响master,也不影响slave。

20

3楼办法可以。
使用XtraBackup整体备份,然后在从库恢复,然后再设定binlog的位置即可。
XtraBackup是基于物理拷贝的,所以速度快一些,而且它备份的时候只所MyISAM的表,不影响InnoDB表。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明生产环境新增一个从库