跳过MySQL主从错误会导致行级数据不一致:UPDATE跳过使从库保留旧值,DELETE跳过致从库残留数据,INSERT跳过掩盖双写缺陷;pt-table-sync通过逐行比对生成反向SQL修复,但需谨慎执行并验证。跳过 MySQL 主从错误后,数据不一致到底有多严重跳过错误(比如用 SET GLOBAL sql_slave_skip_counter = 1 或 START SLAVE SKIP_COUNTER = 1)不是"继续同步"而是"主动丢弃一条变更",主库写入了,从库没执行------这直接导致行级差异。尤其在 UPDATE/DELETE 场景下,一行在主库被改掉或删了,从库还留着旧值或残留行,后续基于该行的业务逻辑(比如订单状态流转、库存扣减)可能出错。常见错误现象:Slave_SQL_Running: No 伴随 ERROR 1032 (HY000): Can't find record in 'xxx' 或 ERROR 1062 (23000): Duplicate entry 'xxx' for key 'PRIMARY';此时若盲目跳过,很可能已漏掉关键状态更新。UPDATE 语句跳过 → 从库该行仍是旧值,下游报表、风控规则全按错数据跑DELETE 语句跳过 → 从库多出一行,如果应用做"主键存在即校验通过",会误判业务状态INSERT 语句跳过且主键冲突 → 可能掩盖上游双写或幂等缺陷,问题延后爆发pt-table-sync 怎么定位并修复不一致pt-table-sync 不是靠 binlog 回放补数据,而是逐行比对主从表内容,生成反向 SQL 让从库"对齐"主库。它默认只输出 SQL,不自动执行,必须加 --execute 才真正修复。使用场景:主从结构稳定、网络延迟低、表有主键或唯一键(否则无法准确定位差异行)。基本命令:pt-table-sync --sync-to-master h=从库IP,u=用户,p=密码,D=库名,t=表名 --print 先看要执行哪些 SQL必须加 --sync-to-master,否则默认以第一个实例为基准(容易搞反方向)大表慎用:pt-table-sync 会分块 SELECT 比对,但单次锁行+网络传输仍可能拖慢从库,建议避开业务高峰遇到无主键表?它会退化为全表扫描比对,速度极慢且易超时,先补唯一索引再操作为什么不能直接用 REPLACE INTO 或 INSERT ... ON DUPLICATE KEY UPDATE这些语句看似能"覆盖"不一致,但它们只解决"写入冲突",不解决"逻辑缺失"。比如主库某行被 DELETE,从库还存在------REPLACE INTO 无法感知该行该删,只会尝试插入(失败)或更新(无意义)。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。
相关推荐
兵慌码乱7 小时前
基于Python+PyQt5+SQLite的药房管理系统实现:事务一致性与界面解耦全流程解析金銀銅鐵8 小时前
[Python] 体验用欧几里得算法计算最大公约数的过程FreakStudio12 小时前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发用户03321266636713 小时前
使用 Python 从零创建 Word 文档Csvn18 小时前
Python 两大经典坑点 —— 可变默认参数 & 闭包延迟绑定曲幽19 小时前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了用户5569188175320 小时前
#从脚本到独立程序:Python + Playwright 批量抓取的完整踩坑记录倔强的石头_1 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测兵慌码乱1 天前
基于 MediaPipe 与 PySide2 的手势交互音乐控制系统实现:轻量化视觉交互全流程解析luckdewei2 天前
FastAPI 资产管理系统实战:复杂 ORM 关联、Alembic 迁移与 N+1 查询优化