高可用数据库构架下,使用双主库设计,存在两个内网ip,一般应用下会直接改调用数据库的程序代码实现数据库选择。但是我们使用的是商业授权的软件,本身是加密的,因此只能通过自建心跳检测实现自动切换。这里写了个简单的ping脚本,3秒执行一次:
#!bin/bash while true do ping 172.31.1.1 -c 1 #&>/dev/null result=$? sleep 3 if [ $result -ne 0 ] then sed -i '$d' /etc/hosts echo "172.31.1.2 mysql.cloudraft-ha-cluster.com">> /etc/hosts echo "Master mysql service is down">>/var/log/ha.log fi done