一、伺服器分布

二、MySQL-MMM 配置
(1)、公共配置【所有DB節點:Master1、Master2、Slave1、Slave2 Monitor節點】
# vim /etc/mysql-mmm/mmm_common.conf
(2)、Agent節點【所有DB節點:Master1、Master2、Slave1、Slave2】
Master1節點:
三、問題描述及解決方案
1、問題描述
當Master1發生故障,導緻DB不可用時,VIP會自動漂移到Master2上,以實作高可用。但出現了一個問題,由于ARP老化時間過長,導緻漂移過去的VIP不可用,也無法ping通。也就是說,MySQL-MMM沒有考慮到ARP老化時間過長的情況而采取強刷ARP的方式。
2、解決方案
方法一(手動指令強刷)
擷取網關位址:
# arping -I eth1 -c 3 -s10.222.5.224 10.222.0.1
方法二(代碼級别修正)
# vim /usr/share/perl5/vendor_perl/MMM/Agent/Helpers/Actions.pm
方法三(SHELL腳本方式)
# vim /data/scripts/refresh_vip.sh
需要添加的crontab資訊【每10秒重新整理一次】:
* * * * * sleep 10; /data/scripts/refresh_vip.sh >/dev/null 2>&1
* * * * * sleep 20; /data/scripts/refresh_vip.sh >/dev/null 2>&1
* * * * * sleep 30; /data/scripts/refresh_vip.sh >/dev/null 2>&1
* * * * * sleep 40; /data/scripts/refresh_vip.sh >/dev/null 2>&1
* * * * * sleep 50; /data/scripts/refresh_vip.sh >/dev/null 2>&1