欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记一次Mysql半同步bug(Bug #89370)

程序员文章站 2022-07-14 23:37:25
...

记一次Mysql半同步bug(Bug #89370)

题外话

偶遇一次Mysql半同步比较少见的bug,mysql版本为5.7.21,架构为双主,启用了半同步semi-sync replication。

一、故障现象

Mysql双主实例的从节点重启后,主节点的操作未能及时同步到从节点,发生主从复制延迟

登陆从节点检查发现如下状态:(show slave status\G)

主从同步已开启,但是IO线程时而"Yes",时而"Connecting",检查主从复制用户也正常,感觉很纳闷。

记一次Mysql半同步bug(Bug #89370)
登陆主节点检查有新的发现:(show processlist;)
记一次Mysql半同步bug(Bug #89370)

一般show processlist很少见到waiting to finalize termination这个状态的,而且看上去是Binlog dump GTID这个步骤卡住了,第一个感觉是被阻塞了,但是确认后,此时是没有业务事务的。

二、故障处理

尝试重启主从同步

由于此时故障只表现为主从复制数据未同步,业务未受影响,故尝试重启主从复制:
stop slave;
start slave;
重启后,故障现象依旧。

查找Mysql官方资料
发现一个类似本次现象的bug文档:https://bugs.mysql.com/bug.php?id=89370
记一次Mysql半同步bug(Bug #89370)

可以看到,这是一个偶发性的问题,隔了20分钟后,再看主从复制已经自动恢复正常。

三、总结

此次只是遇到了一个比较小的bug,但也提醒了大家,如果可以最好用Mysql官方的最新版本。(大版本的最后一个小版本,如5.7的5.7.30)

哎哟,不错噢! - - - - - - 欢迎指出有误的地方以及补充更好的方法

相关标签: Mysql mysql