当前位置: 首页 > news >正文

MySQL主从不一致?DBA急救手册:14种高频坑点+3分钟定位+无损修复!

MySQL「主从不一致」最常见的成因、快速定位思路以及可落地的修复手段

一、为什么会不一致?14 类高频场景

类别典型表现/触发条件快速自检命令/日志
1. 从库被写入业务或 DBA 直连从库 UPDATE/INSERTSHOW VARIABLES LIKE 'read_only' 应为 ON
2. 复制过滤规则主从 binlog-ignore-db / replicate-do-table 不一致比对 my.cnf 过滤规则
3. 非 ROW 格式STATEMENTUUID()NOW() 等不确定函数SHOW VARIABLES LIKE 'binlog_format'
4. 异常宕机主库 crash 瞬间事务未落盘;从库 relay-log 损坏错误日志出现 Relay log read failure
5. 从库断电relay log 截断 → SQL 线程报错 1594SHOW SLAVE STATUSLast_Errno=1594
6. 网络丢包I/O 线程反复重连,少拉日志Slave_IO_Running=NoLast_IO_Error 提示网络
7. 主从版本差异高版本主库语法在低版本从库不支持比对 SELECT VERSION()
8. sql_mode 不一致严格模式主库插入成功,从库失败SHOW VARIABLES LIKE 'sql_mode'
9. server-id 冲突环形/链式复制时事件被循环过滤SHOW VARIABLES LIKE 'server_id'
10. 自增步长问题双主/多主写入产生重复 PKauto_increment_increment ≠1
11. 大事务+延迟从库落后几小时,业务已删除主库数据Seconds_Behind_Master 持续增大
12. 备份恢复方式错误mysqldump 未加 --single-transaction --master-data=2检查备份脚本
13. 存储过程/触发器从库缺少对应 routine 或触发器行为不同SHOW PROCEDURE STATUS
14. MySQL Bug8.0.27 之前函数索引、JSON 查询触发 assertbugs.mysql.com + assert 文件名

二、快速定位三步走(5 分钟)

2.1. 看状态

SHOW SLAVE STATUS\G

关注 4 个核心字段:
Slave_IO_Running | Slave_SQL_Running | Last_Error | Seconds_Behind_Master

2.2. 看日志

tail -n 200 /var/log/mysqld.log | grep -E "Error|Assert|1032|1062|1594"

1032=记录不存在,1062=主键冲突,1594=relay-log 损坏

2.3. pt-table-checksum(可选)

不会可以这个工具评论区告诉我

pt-table-checksum \
--no-check-binlog-format \
--nocheck-replication-filters \
--replicate=ptdb.checksums \
--databases=wewindb \
--tables=test1 \
--recursion-method=dsn=D=ptdb,t=dsns \
h=10.20.17.101,u=root,p=root,P=3306

不一致的表会在 percona.checksums 中生成 diff 记录。

三、修复方案选择矩阵

场景推荐方案停机需求速度备注
仅个别表/少量行pt-table-sync0分钟级checksumsync
单表大量不一致重建该表低(可在线导出)10~30 minmysqldump --single-transaction + source
多表/整库错乱重做从库xtrabackup 流式重建最稳
relay-log 损坏自动恢复0秒级STOP SLAVE; SET GLOBAL relay_log_recovery=1; START SLAVE;
1032/1062 报错跳过或补数据0秒级SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; 仅应急

说明:
MySQL 8.0.22 开始,使用 STOP REPLICA 来代替 STOP SLAVE,后者现在已被弃用。 在 MySQL 8.0.22 之前的版本中,请使用 STOP SLAVE。

四、预防措施(生产必做)

4.1. 从库只读

read_only=1
super_read_only=1   # 8.0+

4.2. 复制信息落表

master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=1

4.3. 格式与一致性

binlog_format=ROW
gtid_mode=ON
enforce_gtid_consistency=ON

4.4. 定期校验

每月低峰期跑 pt-table-checksum,差异写入报警。

4.5. 版本策略

主从同版本 ≥ 8.0.35,避免 8.0.27 之前已知 assert 触发场景(函数索引、JSON MEMBER OF)。

五、结论

出现主从不一致,先读 SHOW SLAVE STATUS 和错误日志 → 用 pt-table-checksum 检查 → 能用 pt-table-sync 就不同步整库;如果修复不了主从不一致,那重做吧, xtrabackup或者mysqldump 重做从库。


文章转载自:

http://KXnAoEp2.trsdm.cn
http://fughhbSW.trsdm.cn
http://GqeA5sz8.trsdm.cn
http://RPUHejYs.trsdm.cn
http://U99dLDww.trsdm.cn
http://6RfKp8Sh.trsdm.cn
http://Qawnbk2O.trsdm.cn
http://isqaWTnV.trsdm.cn
http://QyhRXFdV.trsdm.cn
http://u9GVezD7.trsdm.cn
http://zcpgDshd.trsdm.cn
http://PepICWOb.trsdm.cn
http://KXSUqqoC.trsdm.cn
http://2mt5x7Rd.trsdm.cn
http://YF4NOOoj.trsdm.cn
http://NODfuBIN.trsdm.cn
http://RUvrDJCn.trsdm.cn
http://k9Q8hzBX.trsdm.cn
http://xyI5T6sD.trsdm.cn
http://l61530Ub.trsdm.cn
http://fZWcuSzo.trsdm.cn
http://u3xLVtw7.trsdm.cn
http://5vFgmedT.trsdm.cn
http://7wmIzTZv.trsdm.cn
http://LNLhV4VP.trsdm.cn
http://is8Yu3tl.trsdm.cn
http://tuf0BlhC.trsdm.cn
http://fqe75EKR.trsdm.cn
http://22ZVjDP7.trsdm.cn
http://oVs05oQp.trsdm.cn
http://www.dtcms.com/a/377499.html

相关文章:

  • 拍我AI:PixVerse国内版,爱诗科技推出的AI视频生成平台
  • 3D柱状图--自定义柱子颜色与legend一致(Vue3)
  • LeetCode热题100--199. 二叉树的右视图--中等
  • Next系统学习(三)
  • Python深度学习:NumPy数组库
  • Django时区感知
  • PostgreSQL15——Java访问PostgreSQL
  • Shell 函数详解
  • 【系统分析师】第21章-论文:系统分析师论文写作要点(核心总结)
  • Linux 命令(top/ps/netstat/vmstat/grep/sed/awk)及服务管理(systemd)
  • 【图像生成】提示词技巧
  • 揭秘Linux:开源多任务操作系统的强大基因
  • (ICLR-2025)深度压缩自动编码器用于高效高分辨率扩散模型
  • 《Why Language Models Hallucinate》论文解读
  • 【机器学习】通过tensorflow实现猫狗识别的深度学习进阶之路
  • AD5362BSTZ电子元器件 ADI 高精度数字模拟转换器DAC 集成电路IC
  • DMA-M2M存储器与存储器之间读写
  • Mistral Document AI已正式登陆Azure AI Foundry(国际版)
  • 机器学习实战(二):Pandas 特征工程与模型协同进阶
  • Flutter 朦胧效果布局大全:5种方法实现优雅视觉层次
  • 【CVPR2023】奔跑而非行走:追求更高FLOPS以实现更快神经网络
  • PHP学习(第三天)
  • 数仓简要笔记-1
  • 机器人商业化落地需要突破的关键性技术
  • AI 技术体系核心概念
  • STM32H750 I2C介绍及应用
  • 计算机网络---物理层
  • 【freemarker】创建html页面
  • 【华为OD】区块链文件转储系统
  • sprintf不是像printf一样的打印函数吗