ITPub博客

首页 > 数据库 > MySQL > 记一次MySQL主从同步异常故障处理案例分析

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

原创 MySQL 作者:龙山游龙 时间:2025-08-06 17:40:43 8 删除 编辑

 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 主从数据库同步恢复正常。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30310891/viewspace-3092896/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
传统商业、开源和国产据库领域十从业经验,TB级高并发数据库的管理经验。对于数据库内部原理、体系结构,数据页/块结构原理有着深刻认识;对于数据库新特性、分布式高可用架构和性能调优有着丰富的的实战经验。擅长故障诊断以及数据库异常打开及数据灾难挽救。

注册时间:2015-06-28

  • 博文量
    178
  • 访问量
    335710