Mysql开启GTID后遇到错误跳过方法

处理方法如下:

一:跳过错误

  这个GTID_NEXT的4,是在master 上正常执行的最大id + 1,即Executed_Gtid_Set里面master uuid执行过的最大值 3+ 1

STOP SLAVE ; #首先停止gtid复制
SET @@SESSION.GTID_NEXT= '8f9e146f-0a18-11e7-810a-0050568833c8:4' ; 设置当前下一个执行的事务Id
BEGIN; COMMIT; # 设置空事务,直接提交
SET @@session.gtid_next=automatic;; #恢复下一个事务号 
START SLAVE; # 继续开启事务

二,重置master跳过错误

手工调整SLAVE已清除的GTID列表GTID_PURGED,人为通知SLAVE哪些事务已经被清除了,后续可以忽略:

STOP SLAVE;
RESET MASTER;
SET @@GLOBAL.GTID_PURGED = '00018601-1111-1111-1111-111111111123:1-2031';
START SLAVE;
#在slave 运行时刻 reset master 命令不被支持
#在GTID环境中,RESET MASTER会清除掉系统变量gtid_purged和gtid_executed的值

 

上面 gtid_next 的值 00018601-1111-1111-1111-111111111123:2030是个会话级变量。

  • uuid是 Retrieved_Gtid_Set 的uuid,一般是 Master_UUID 的值,但如果是级联复制(master -> slavel1 -> slave2),那么要找到出错事务最原先在哪执行的
  • trx_id(或叫position)是 master 上正常执行的最大id + 1,即Executed_Gtid_Set里面master uuid执行过的最大值 2030+ 1

 

posted @   zping  阅读(702)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2015-05-22 SQL Server 复制(Replication) ——事务复制搭建
点击右上角即可分享
微信分享提示