MySQL主从同步表HA_ERR_KEY_NOT_FOUND错误处理思路

运维有笔谈 2024-11-05 07:08:39

私信 ”运维笔谈”,对话回复 “阿里云k8s” 可以获取《阿里云Kubernetes项目实战手册》PDF。

我这边办公环境的MySQL主从被我一次强制重启MySQL服务给搞坏了,不得不重新做下主从,由于mysqldump速度慢,数据库又很大,所以这次使用了mydumper来下载数据库文件,使用myloader在导入数据。

当我导完数据的时候,change master之后,我发现了同步出现了问题,具体的报错如下:

Could not execute Update_rows_v1 event on table device.device_active_stats; Can't find record in 'device_active_stats', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.010349, end_log_pos 377529587

该报错意思是在执行 Update_rows_v1 事件时,MySQL 无法找到要更新的记录。这种情况通常发生在主从复制或数据恢复过程中,可能是由于以下几种原因:

数据不一致:MySQL主库和从库之间的数据不一致。删除操作:记录在从库上已经被删除,但在主库上仍然存在。导入顺序问题:在数据导入过程中,插入和更新操作的顺序不正确。

结合我在 myloader 的时候,这个表一直提示锁定等待超时,我怀疑可能是表出现了问题。我尝试了跳过错误的事务,实在是太多了。。

所以我最终不得不选择单独导入这张表,先清空这张表。

#SQLTRUNCATE TABLE device.device_active_stats;

然后使用MySQL source的方式,重新导入了这张表,再次start slave,同步恢复开始追数据了。

0 阅读:0

运维有笔谈

简介:感谢大家的关注