GreatSQL社区

搜索

[已解决] mysql8.0.23从库同步阻塞问题

1072 1 2022-9-13 09:40
1,监控告警发现主从延时超过15分钟
2,登录备库,多次执行show slave status发现IO线程和sql线程处于yes状态,Relay_log_pos:9942027、Exec_master_log_pos:9941812值没变化,seconds_behind_master值在增加,Slave_sql_running_state:Applying batch of row changes(delete)
3,查看主库9941812位置的binlog,见图
4,日志没有发现问题,添加并行同步重启数据库,创建主键都没有用
5,重启数据库之后,查看日志发现有一个error:Can't find record in '表名',error_code:1032;handler error HA_ERR_KEY_NOT_FOUND;the event's master log FIRST,end_log_pos 10054066,error_code:MY-001317
最后我怀疑是delete事务中从库缺少数据Can't find record in,导致整个delete事务卡住的,不过另一个同事不想再看了,就直接重做了。
全部回复(1)
yejr 2022-9-13 10:39:32
正确的做法应该是类似下面这样:
1. 当发现slave sql thread卡住了,例如上文提到的状态:Slave_sql_running_state:Applying batch of row changes(delete)。
2. 这时应该看下正在运行的事务是什么,以及对应的表DDL。
3. 你文中描述的情况,怀疑是当时执行大事务,所以看起来slave上的binlog一直没变化。
4. 重启后报告找不到记录,可能是你没设置双一,导致部分事务重启后冲突了,才会报错。
5. 几个slave延迟原因分析参考
- https://mp.weixin.qq.com/s/xzIoPLcv8GcMvoZUQvHwow
- https://mp.weixin.qq.com/s/QKZFG2lhkO549txgzwc9Hg
AISql

2

主题

0

博客

5

贡献

新手上路

Rank: 1

积分
7

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-11-23 17:37 , Processed in 0.017249 second(s), 10 queries , Redis On.
快速回复 返回顶部 返回列表