mysql主从不一致,重新同步从库

背景:

线上宕机,导致数据不一致,当时为了快速恢复业务,仅使用主库,现在需要恢复,因为主从数据相差比较大,所以对从库重新进行同步。

1、首先重置从库的同步设置、并清除从库不一致数据

(1)#停止slave

stop slave;

#重置slave,会重置从库相关设置。

reset slave all;

(2)#清除已同步数据库

drop database `***`;

2、重置主库同步设置,锁定主库,备份主库

(1)多次查看主库状态

mysql主从不一致,重新同步从库

发现每次position位置都不同,说明主库数据一直在变,现在不能备份,需要在晚上人少的时候锁库备份。

(2)#重置主库同步设置

RESET MASTER;

(3)#锁定主库,只能读

FLUSH TABLES WITH READ LOCK;

(4)#查看锁定状态下主库的binlog和位置

mysql主从不一致,重新同步从库

重置后和锁库后的binlog的位置可能有变化,取锁库后的就行。

(5)备份数据,在linux命令行执行,不要在数据库内执行。

        mysqldump –h(ip***) –P(port***) –u(user***) –p(pwd***) --all-databases > /master-dump.sql

(6)查看备份文件,解锁主库

mysql主从不一致,重新同步从库

#解锁主库

UNLOCK TABLES;

3、从库数据恢复,修改从库同步设置,启动从库

从库可选数据恢复方式

mysql主从不一致,重新同步从库

 

(1)因为直接对线上库操作,所以用的保守方法:先把备份sql传到从库,进入从库mysql,再使用 source / master-dump.sql ,如果数据量较大,执行需要一段时间

mysql主从不一致,重新同步从库

下边是执行完毕后可以查看同步过来的数据库信息

mysql主从不一致,重新同步从库

 (2)修改从库同步设置,因为重置设置,所以用户名端口要再设置,赋值后查看:

mysql主从不一致,重新同步从库 mysql主从不一致,重新同步从库

(3)打开从库同步,两个yes,代表成功,可以自己验证了

mysql主从不一致,重新同步从库

  1. 参考

如何重置(重新同步)MySQL主从复制

https://codedefault.com/p/mysql-distributed

MySql数据库备份与恢复——使用mysqldump 导入与导出方法总结

https://blog.csdn.net/helloxiaozhe/article/details/77680255