网上介绍的从库搭建一般需要停止主库业务,对业务持续性存在影响,本文将在不停业务不停主库的情况下,完成从库的初始化及binlog同步配置,适用于传统自建mysql及云环境下的mysql从库的搭建。
关键:有主库全备文件及备份时刻的position;
全库备份参考:
主库导出,记录
主库binlog及position
mysqldump -uroot -p123456 -h10.1.1.11 -B
A_db
--master-data=2
--single-transaction
--quick
--set-gtid-purged=OFF
--skip-add-drop-table
--force
>/home/slavedbbak/
yqjp_db
_$(date +%F).sql
1、准备一个全新的从库,注意版本、字符集、gtid、sql_mode之类的与主库保持一致;
2、根据上述参考,完成全库备份文件的生成(根据参考脚本备份的文件里会记录主库binlog文件名及备份时刻position)
3、全量导入备份文件
mysql -uroot -p <all_bak.sql
4、主库上的从库账号配置
grant replication slave on *.* to 'abc'@'%' identified by '123456';
5、从库上的配置
mysql>stop slave;
mysql>
change master to master_host='
10.1.1.11
', master_port=
3306
, master_user='
abc
',master_password='
123456
', master_log_file='
mysql-bin.000002
',master_log_pos=
29854745
;
mysql>start slave;
PS:如果配置完成后发现仍有部分数据出入,可能原因:配置顺序出错,从库调整同步配置之前没有停止slave,导致配置过程中同步过来的部分数据被删除,处理办法:
1、stop slave;
2、重新生成备份文件
3、重置从库(删掉需要同步的库)
4、导入新生成的备份文件
5、从新生成的备份文件中获取position,重新配置主从同步;
6、start slave;