#!/bin/bash
#####事先保存mysql集群ip
hostlist=`cat /etc/hosts | grep -oE "192.168.100.[0-9]+"`
#####检测宕机数据库ip及当前主库ip
for i in ${hostlist}
do
cat /etc/mha/app1.cnf | grep -o "${i}"
if [[ $? != "0" ]]
then
downip=${i}
elif [[ $? -eq 0 ]] || [[ "$i" != "192.168.100.20" ]]
then
masterip=${i}
fi
done
#####远程连接数据库并重新告知主从
ssh root@"${downip}" "systemctl start mysqld"
cat > /tmp/myzc.sql <<EOF
CHANGE MASTER TO
MASTER_HOST="${masterip}",
MASTER_USER="repl",
MASTER_PASSWORD="123",
MASTER_AUTO_POSITION=1;
EOF
mysql -uroot -p111 -h${downip} -e "source /tmp/myzc.sql;" 2> /dev/null
mysql -uroot -p111 -h${downip} -e "start slave;" 2> /dev/null
cp /root/app1.cnf.bak /etc/mha/app1.cnf
#######拉取主库binlog日志
nohup mysqlbinlog -R --host=${masterip} --user=mha --password=mha --raw --stop-never mysql-bin.000001 2>&1 &
#######启动mha
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null >/var/log/mha/app1/manager.log 2>&1 &
mha一键修复
最新推荐文章于 2022-08-26 15:33:59 发布