点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
故障现象
环 境 os:redhat7 DB:mysql 6.7 主从
故障现象
主从线程未running,同步中断。
报错日志
Could not execute Write_rows event on table
skdata_2021.pj_xxxx_fpmx; Duplicate entry '043002000111-
01278925' for key 'ak_key_2',
Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the
event's master log master-bin.000403, end_log_pos 333202176
处理步骤
方法一:对于数据量少的时候适用
根据唯一性key查找相关记录; master库备份记录; slave库删除重复记录。
show variables like '%slave_exec_mode%';
set global slave_exec_mode='IDEMPOTENT';
stop slave;
start slave;
set global slave_exec_mode='STRICT';
stop slave;
start slave;
Could not execute Update_rows event on table
skdata_2021.qrtz_scheduler_state; Can't find record in
'qrtz_scheduler_state',
Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the
event's master log master-bin.000403, end_log_pos 333327330
使用mysqlbinlog主库操作:
把更新前记录找出,并在从库插入执行,再启动slave sql进程
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 333327142
#210628 10:41:19 server id 127 end_log_pos 333327216 CRC32 0xb31a9243 Table_map: `skdata_2021`.`qrtz_scheduler_state` mapped to number 110214
# at 333327216
#210628 10:41:19 server id 127 end_log_pos 333327330 CRC32 0x85a6c09f Update_rows: table id 110214 flags: STMT_END_F
### UPDATE `skdata_2021`.`qrtz_scheduler_state`
### WHERE
### @1='fpskgl21616596076563'
### @2=1624848058505
### @3=20000
### SET
### @1='fpskgl21616596076563'
### @2=1624848078982
### @3=20000
ROLLBACK * added by mysqlbinlog */ *!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
从库insert update之前的记录:
set sql_log_bin=0;
insert into `skdata_2021`.`qrtz_scheduler_state` values ('fpskgl21616596076563',1624848058505,20000);
commit;
set sql_log_bin=1;
启动slave sql线程:
start slave sql_thread;

本文作者:唐田寿(上海新炬王翦团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




