记一次MySQL主从同步异常故障处理案例分析

来源:这里教程网 时间:2026-03-01 18:31:53 作者:

 1 、故障描述

某次某用户,在对某业务系统所在的 MySQL 数据库进行部署备份脚本时,发现 MySQL 数据库主从同步异常。经过排查,可以从日志中明确获取到 主从同步故障时间点为 2021-07-15

主库 position

从库 pos ition          Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

 2 、根因分析

主库的 pos ition 小于从库的 p osition ,说明主库运行过程中,曾执行 r eset master 的操作,导致从库无法识别主库的偏移量,从而导致主从的 同步失败。

而日志中显示的是:主从的 s erver id 是一致的,因此查看主从的配置。

分析可得出,主从的 server  id 配置上是正确的。

 3 、解决方案

基于以上的分析结论,并且 MySQL 的数据库的数据量较小,因此建议重新搭建主从数据库,从而保障数据库的高可用。

1.  主库锁表、执行数据库全备

mysqldump -uroot -p' xxx ' -S / xxx /mysql/run/my3306.sock --single-transaction --master-data=2 --all-databases >

/tmp/mysql_fullbak_20220425_bak

2.  从库重置主从同步配置            stop slave;            reset slave all;            SET SQL_LOG_BIN=0;            DROP DATABASE sys;            SET SQL_LOG_BIN=1;            mysql_upgrade

3.  从库重新同步            mysql -uroot -p' xxx ' -S / xxx /mysql/run/my3306.sock < /tmp/mysql_fullbak_20220425_bak

4.  从库重新同步            # m aster_log_file master _log_pos sql 文件开头            change master to master_host = '192.168.2. xxx ',            master_user = 'zwrep',            master_port=3306,            master_password=' xxx ',            master_log_file='mysql-bin.000202',            master_log_pos=17015158;            start  slave;

5.  重新同步            show slave status\G;          

至此, MySQL 主从数据库同步恢复正常。

相关推荐