mysql Last_SQL_Errno: 1032

今天遇到线上报错:相关信息如下

Slave_IO_Running: Yes
            Slave_SQL_Running: No 
Last_SQL_Errno: 1032
               Last_SQL_Error: Could not execute Delete_rows event on table db.table; Can't find record in 'table', Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the event's master log mysql-bin.002590, end_log_pos 145957208


处理步骤:
先把binlog解析出来,找到mysql-bin.002590 这个文件,进行解析,然后对解析出来的文件,找到指定的end_log_pos 145957208,就能找到执行的sql


这里需要强调一点:

@1

@2

@3

@4

@5

对应的相关表的字段,只要把1,2,3,4,5换成对于表的字段就行了,后面的=xxx,是对应的判断条件,

通过这个就能还原出原来的sql

CREATE TABLE `attention_3e` (
  `fromuid` bigint(10) unsigned NOT NULL DEFAULT '0',
  `touid` bigint(10) unsigned NOT NULL DEFAULT '0',
  `appid` int(10) unsigned NOT NULL DEFAULT '1',
  `ip` int(10) unsigned NOT NULL DEFAULT '0',
  `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`touid`,`fromuid`),
  KEY `fro_add_app_ip` (`fromuid`,`addtime`,`appid`,`ip`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8



还原后的sql为:

 DELETE FROM `attention`.`attention_3e`  WHERE fromuid=59xxx and   touid=56xxx and   appid=36xxx and   ip=20xxx and   addtime=14xxx;

这样把delete转换成select 

select * from `attention`.`attention_3e`  WHERE fromuid=59xxx and   touid=56xxx and   appid=36xxx and   ip=20xxx and   addtime=14xxx;

分别在主库和从库上执行

如果主库有,从库没有,那就把从库补上。如果主从都没有就skip


我们在发现的是主从都没有所以在从库上执行skip

stop slave ; set global sql_slave_skip_counter=1;start slave;

然后问题解决了



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值