码迷,mamicode.com
首页 > 系统相关 > 详细

MHA之Binlog Dump (GTID)僵尸进程清理

时间:2017-11-07 17:55:54      阅读:295      评论:0      收藏:0      [点我收藏+]

标签:mit   images   状态   hang   查看   image   僵尸进程   配置   switch   

 
master存活的状态下切换
masterha_master_switch --conf=/etc/masterha/app1.cnf --master_state=alive --new_master_host=192.168.0.101 --orig_master_is_new_slave --running_updates_limit=1000
不出意外的情况下,会报下面的错误:
技术分享

查看源代码:

技术分享

技术分享
 在新master上获取正在执行的进程,也就是show processlist操作。并且将获取到的processlist信息进行分析判断,如果新master当前还存在binlog dump或binlog dump gtid进程等,则无法切换。
技术分享

源码 DBHelper.pm片段

技术分享

 

技术分享
报错的原因是切换成功后,原master变成了slave,而新slave上的binlog dump gtid线程并没有没停掉,理论上切换成功后,由于角色的转换,原master变成slave,binlog dump gtid进程应该停止运行的,为什么没有被停止掉呢?
技术分享
 
技术分享
 
查看新master上的报错日志。
技术分享

连接丢失,原来是连接丢失导致slave没接收到信号,所以进程没有被停掉。

 
该问题可以通过配置主从同步心跳检测时间来提前触发主从检测,从而达到slave上的binlog dump gtid进程提前停止。系统默认主从检测时间是3600S。
配置如下,在可能会成为master的slave上执行
stop slave;
change master to master_heartbeat_period = 10;
set global slave_net_timeout = 25;
start slave;
在当前主上执行
change master to master_heartbeat_period = 10;
set global slave_net_timeout = 25;
 
可以直接配置在配置文件中
slave_net_timeout = 25
 
再次手动切主的时候就发现binlog dump gtid进程很快就被清理了,也不会报错了。
技术分享

 技术分享

 

MHA之Binlog Dump (GTID)僵尸进程清理

标签:mit   images   状态   hang   查看   image   僵尸进程   配置   switch   

原文地址:http://www.cnblogs.com/jandison/p/7799599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!