在MySQL中,出现Executed_Gtid_Set 乱序增长的场景

在MySQL中,Executed_Gtid_Set 乱序增长通常指的是该集合中出现非连续的区间(即"空洞")。这打破了正常情况下GTID应严格递增连续的预期,主要由以下四种场景导致:

  1. 并行复制

这是最常见的情况。从库开启并行复制后,多个worker线程并发回放事务。由于各事务提交速度不同,后面的可能先执行完,导致Executed_Gtid_Set在尾部出现暂时不连续。例如,1-92:94-96:98-100(缺失93、97等)。

· 特征:只要主库停止写入,从库追平后集合最终会恢复连续。

  1. 手动跳过事务

当复制因错误中断,管理员手动跳过一个事务时,该GTID会以单独区间被记录。若之前已执行到N,跳过N+1,集合会变成 1-N : N+2-M,形成永久空洞。

· 特征:属于永久性空洞,通常用于跳过确认为"安全"的错误。

  1. 直接修改GTID_PURGED

通过RESET MASTER后直接设置GTID_PURGED来"伪造"执行历史,会引入一个与当前实际执行状态不符的乱序集合。

· 风险:极易导致主从不一致或复制中断(如1236错误)。

  1. 主机崩溃

主库非正常关机,可能导致已发送到从库但尚未在本地落盘的事务丢失。从库记录的GTID集合因此多于重启后的主库,这种不一致在集合中表现为"多余的区间"。

· 特征:主库比从库"少"了某些GTID,是数据不一致的严重信号。

总结

Executed_Gtid_Set 中的乱序(空洞)并非一定是故障。并行复制导致的尾部临时空洞通常无需干预,而因手动跳过、参数误操作或主机崩溃导致的永久性不一致,则需要通过重建同步或数据校验来处理。

如果你在执行某个具体操作后发现了 GTID 乱序,可以告诉我具体场景,我帮你分析是否需要修复。

相关推荐
y = xⁿ1 小时前
一文掌握Redis常见八股
数据库·redis·缓存
Cloud云卷云舒1 小时前
HaishanDB(海山)|磐维数据库|YashanDB(崖山)深度对比分析
数据库·人工智能·海山数据库·haishandb·移动云海山数据库
weixin_460443561 小时前
企业考试系统如何对接OA、钉钉和企业微信?SSO单点登录、组织同步与权限一致性设计
java·开发语言·数据库
xywww1681 小时前
真实后台页实测:Opus 5 看图写前端的可用边界在哪
linux·服务器·前端·数据库·人工智能·gpt
上海云盾商务经理杨杨2 小时前
SQL 盲注入渗透实战!无报错页面也能成功注入
数据库·sql
ruleslol2 小时前
index merge避免回表
mysql
秋田君3 小时前
QT_绘图原理双缓冲机制
服务器·数据库·qt
一条闲鱼_mytube4 小时前
深入理解 Pinecone 向量数据库:从云服务到索引原理,一篇讲透
数据库
许彰午4 小时前
政务低代码平台实战⑤:双输出模式——存DB与导出JSP的完整链路
数据库·低代码·政务
南京码讯光电技术有限公司4 小时前
What Does Ex tb IIIC T80°C Db Mean?
服务器·网络·数据库