游乐游手机版
首页/科技数码/文章详情

MySQL主从中断常见原因解析与排查方案

时间:2026-01-29 11:13
如果一个异常大的事件(包含一个或多个数据包)超过该参数大小,事务将被保留,直到所有的workers都有空队列,然后再进行处理。所有后续事务都被保存,直到大事务完成。这可能会加剧主从延时。 在生产环境

当一个异常庞大的事务(包含单个或多个数据包)的尺寸超过了特定参数的大小时,该事务会暂时被保留。直到所有工作线程都清空了待处理队列,系统才会开始处理这个大型事务。在此期间,后续所有事务都会被保存起来,直到那个庞大事务最终处理完毕。这个过程有可能导致主从复制链路出现延迟。

在生产环境中,为了确保数据库服务的高可用性,MySQL 通常会采用主从复制架构。常见的部署模式包括双向复制架构,或者是一主一从、一主多从的架构。

在主从复制架构的运行过程中,同样可能遭遇各种问题,例如复制同步中断。

本文旨在梳理常见的复制中断原因,并提供相应的解决方法。

1. 主键冲突

遇到主键冲突时,通常会看到类似下面的错误信息,错误代码为1062。

Could not execute Write_rows event on table xxx; Duplicate entry ‘xxx’ for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY......

对于主键冲突错误,一般的解决方法是直接在从库中找到并删除重复的记录即可。需要特别注意的是,删除前最好先备份数据,以备将来可能需要进行数据恢复。

2. 记录不存在

常见的“记录不存在”错误示例如下:

Could not execute Update_rows event on table xxx; Can't find record in ‘xxx’, Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND......

或是:

Could not execute Delete_rows event on table xxx; Can't find record in ‘xxx’, Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND......

对于1032错误,解决思路是依据报错信息,前往主库解析对应的binlog日志,找到那条具体的记录,然后手动插入到从库中。如果是在双向复制链路上操作,务必记得需要在会话级别临时关闭binlog写入,以避免操作形成循环。

无论是1062还是1032错误,大部分情况下都源自不规范的操作,例如人为直接在从库上进行了写入。因此,在生产环境中强烈建议将从库设置为只读模式。

3. 主库binlog丢失

主从同步错误码1236是我们所熟悉的,导致主库binlog不存在的报错原因可能包括:

从库未能及时同步主库的binlog,而主库的binlog由于时间过久已被自动清理。有人为在主库手动执行了purge binlog操作或直接删除了binlog文件。人为在主库误执行了reset master命令。请牢记,这是一项高风险操作。

报错信息如下:

Got fatal error 1236 from master when reading data from binary log...but the master has purged binary logs containing GTIDs that the slave requires

对于这种场景,通常只能选择对从库进行重建操作,没有其他捷径。

4. Relay Log损坏

中继日志(Relay Log)的损坏同样会导致主从同步中断,报错信息类似:

Last_SQL_Error:Error initializing relay log postion: I/O error reading the header from the binary logLast_SQL_Error:Error initializing relay log positon:Binlog has bad magic number:it’s not a binary log file that can be used by this version of MySQL.

从库服务器宕机、非法关机、电源故障、硬件故障等场景都有可能造成中继日志的损坏。

相应的解决方法是执行reset slave命令重置relay log。对于传统的基于位点的复制模式,需要依据Relay_Master_Log_File和Exec_Master_Log_Pos这两个变量的值来确定已经同步到的位置,并从这两个位置重新配置同步。

5. 参数问题

部分参数的配置不当也会导致同步中断,例如,可能看到如下报错:

Last_Error: Cannot schedule event Update_rows, relay-log name ...to Worker thread because its size 50450016 exceeds 16777216 of slave_pending_jobs_size_max

导致上述报错的原因是主从同步过程中,slave_pending_jobs_size_max参数的设置值过小。只需调大该参数即可,调整后需要重启复制进程。

slave_pending_jobs_size_max参数在MySQL 5.6版本后引入,默认单位是字节。如果未开启多线程复制,则此参数无效。其默认值为16MB,最大可设置为1GB。

需要注意的是,从库中此参数的值需要等于或大于主库的max_allowed_packet参数值,否则从库的工作队列可能会被填满。

另外,如果一个异常庞大的事件(包含一个或多个数据包)的大小超过了此参数的限制,该事件会被暂存,直到所有工作线程都有空余队列后才会进行处理。所有后续事件也会被保存,直到那个大事件完成。这可能会加剧主从链路的延迟。

来源:https://www.51cto.com/article/835227.html
上一篇蔚来NVM新版上线:智驾再升级,高效安心新体验 下一篇苹果2026新春大片《碰见你》定档:1月30日期待值满格
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
OpenClaw手机App上线,结果翻车了
科技数码 · 2026-07-01

OpenClaw手机App上线,结果翻车了

OpenClaw 官方宣布,已正式推出 iOS 和 Android 原生移动 App,用户如今可以在手机上使用这款主打“能真正帮你做事”的个人 AI 助手。官方在 X 上给出的定位也很直接:把 Agent 放进口袋里,让用户可以在移动端处理频道消息、任务和回复。从功能上看,OpenClaw 移动端并

优必选CEO周剑:家庭机器人生态核心投入过半精力
科技数码 · 2026-07-01

优必选CEO周剑:家庭机器人生态核心投入过半精力

先说几个核心判断:优必选正在布局一盘长远战略。创始人兼CEO周剑在近期一场媒体沟通会上,直接亮出了公司未来的发展路线——工业、商用、家庭陪伴机器人三条业务主赛道并行推进,现阶段每条线各占约一半精力。一边是已经能够稳定创造收入的工业场景,另一边则是他眼中“最具想象力与未来空间”的家庭陪伴领域。工业人形

CPO/NPO/OIO开启封装级光连接价值空间,技术路线尚未收敛
科技数码 · 2026-07-01

CPO/NPO/OIO开启封装级光连接价值空间,技术路线尚未收敛

6月30日,申银万国在光连接系列研报中重点指出,MPO光连接器领域的投资机会值得高度关注。通俗来说,随着AI算力集群持续扩张,光互联升级带来的连锁效应——数据中心光纤通道数量、前面板端口密度、机柜内光纤管理复杂度——均在同步攀升。光连接器的角色早已超越传统的低价值标准件,如今它直接决定着链路插损、可

龙岗AR实景剧本游内测体验短板有效破解之道
科技数码 · 2026-07-01

龙岗AR实景剧本游内测体验短板有效破解之道

在今年龙岗区第二届人工智能与机器人发展大会上,区级部门一次性推出了7个AI“龙搭子”。其中,名为“龙导游”的成果成为文商旅融合领域的核心亮点。据南都N视频记者了解,依托“龙导游”打造的全区全域AR实景剧本游“龙岗大陆”,已在今年五一假期发布了内测版本。经过一个月市场验证后,该项目正式启动面向全社会的

南下资金6月30日净买入中芯国际与建滔积层板
科技数码 · 2026-07-01

南下资金6月30日净买入中芯国际与建滔积层板

6月30日,南下资金持续大举买入港股,单日净流入金额高达58 95亿港元。接下来,我们直接盘点哪些个股获得资金青睐、哪些遭到减持: 净买入方面,中芯国际领跑全场,单日吸金19 33亿港元;建滔积层板紧随其后,净买入10 59亿港元;腾讯控股获得7 65亿港元净流入;智谱(02513 HK)也有6 5