MySQL从库出现数据同步异常中断_重新获取binlog坐标同步

张开发
2026/4/20 8:12:46 15 分钟阅读

分享文章

MySQL从库出现数据同步异常中断_重新获取binlog坐标同步
SHOW SLAVE STATUS中Seconds_Behind_Master为NULL且IO/SQL线程为No表明复制已中断而非延迟需据Last_IO_Error或Last_SQL_Error类型采取对应措施网络问题查连通性SQL错误需确认数据一致性binlog缺失则需重设坐标relay log损坏须手动删除后RESET SLAVEGTID模式下跳过事务须严格校验gtid_purged与gtid_executed关系。SHOW SLAVE STATUS 显示 Seconds_Behind_Master 为 NULL 或 IO/SQL 线程为 No这说明复制链路已断不是延迟高而是彻底停了。常见现象是 Slave_IO_Running 和/或 Slave_SQL_Running 显示 NoSeconds_Behind_Master 为 NULL同时 Last_IO_Error 或 Last_SQL_Error 里有具体报错。先别急着重设坐标先看错误类型再决定动作如果是网络类如 error connecting to master检查主库可达性、账号权限、防火墙如果是 SQL 报错如 Duplicate entry、Unknown column说明从库数据已偏离主库不能直接跳过得先确认是否允许数据不一致如果是 binlog 文件被主库清理Could not find first log file name in binary log index file 或 log event entry exceeded max_allowed_packet这才是需要重新定位坐标的情况主库上执行 SHOW MASTER LOGS 找不到从库当前请求的 binlog 文件这是最典型的“坐标失效”场景从库还在找 mysql-bin.000123但主库 SHOW MASTER LOGS 里最大只有 mysql-bin.000120——文件已被 expire_logs_days 或手动 PURGE BINARY LOGS 清掉。此时必须人工介入定位新起点不能靠 START SLAVE 自动恢复用 SHOW MASTER STATUS 查主库当前最新 binlog 名和 position比如 File: mysql-bin.000120Position: 198765如果从库 Relay_Master_Log_File 比这个还旧如 mysql-bin.000119说明缺失部分不可逆只能全量重同步或接受丢数据如果只是 position 落后如从库卡在 mysql-bin.000120 的 1000主库已到 198765可安全执行 CHANGE MASTER TO MASTER_LOG_FILEmysql-bin.000120, MASTER_LOG_POS198765CHANGE MASTER TO 执行后 START SLAVE 报错 ERROR 1236ERROR 1236 是坐标类错误的集中地典型信息如Could not parse relay log event entry.、binlog truncated in the middle、log event entry exceeded max_allowed_packet。根本原因是 relay log 或主库 binlog 损坏或从库本地 relay log 文件不完整。这时不能硬调坐标得清掉损坏的 relay log 稿定AI 拥有线稿上色优化、图片重绘、人物姿势检测、涂鸦完善等功能

更多文章