暂无图片
Mysql主从同步异常的处理(删除失败)
我来答
分享
佳佳
2021-07-14
Mysql主从同步异常的处理(删除失败)

主从同步报错,由于主库delete的记录在从库上找不到(从库已经删除掉了),但是如果我的记录很多(可能有几万行),如何批量的解决(或者跳过)这个报错?我的环境是开启了GTID的。Auto_Position=1。

如果手动跳过gtid的话(置为空事务),难道要编辑几万行的语句?有没有更快的方法?

报错:
Worker 1 failed executing transaction ‘42c772c3-f5c0-11e7-97c2-d0946614467e:206602827904’ at master log mysql-bin.0320, end_log_pos 160608025; Could not execute Delete_rows event on table app.data_strange; Can’t find record in ‘data_strange’, Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event’s master log mysql-bin.032, end_log_pos 160608025

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
lps
pt-slave-restart 试下
暂无图片 评论
暂无图片 有用 1
佳佳
升级问题到: 潜在风险
暂无图片 评论
暂无图片 有用 0
cqiwen

跳过错误的数据即可:
stop slave ;
set global sql_slave_skip_counter=1;
start slave;

如果备库有很多值都不存在了,那么建议先把不存在的值在备库上插入后,再开启同步。

暂无图片 评论
暂无图片 有用 0
佳佳

https://blog.csdn.net/wll_1017/article/details/70332107

暂无图片 评论
暂无图片 有用 0
薛晓刚

GTID的跳过是这样的。
stop slave;
SET gtid_next = ‘这里填写你看到的gtid:冒号后面这个值加1’;
BEGIN;COMMIT;
SET gtid_next = ‘AUTOMATIC’;
START SLAVE;
show slave status\G;

但是不建议跳过。看你数据也不多,重建吧。
另外以后从库要设置成不可写。

或者你用mgr。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏