一、
(1)、准备vip脚本
[root@db03 ~]# cp master_ip_failover.txt /usr/local/bin/master_ip_failover
[root@db03 ~]# cd /usr/local/bin/
[root@db03 /usr/local/bin]# yum install -y dos2unix
[root@db03 /usr/local/bin]# dos2unix master_ip_failover
[root@db03 /usr/local/bin]# chmod +x master_ip_failover
(2) 更改manager配置文件:
vi /etc/mha/app1.cnf
# 添加:
master_ip_failover_script=/usr/local/bin/master_ip_failover
(3) 修改文件内容:
[root@db03 /usr/local/bin]# vim /usr/local/bin/master_ip_failover
my $vip = '10.0.0.55/24';
my $key = '1';
my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip";
my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down";
(4)主库上,手工生成第一个vip地址
手工在主库上绑定vip,注意一定要和配置文件中的ethN一致,我的是eth0:1(1是key指定的值)
ifconfig eth0:1 10.0.0.55/24 (52节点上)
(5) 重启mha
masterha_stop --conf=/etc/mha/app1.cnf
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 &
二、邮件提醒
(1) 添加配置选项
vi /etc/mha/app1.cnf
report_script=/usr/local/bin/send
(2) 拷贝脚本 先解压
[root@db03 ~]# cp -a email/* /usr/local/bin
邮件发送脚本
#!/bin/bash
/usr/local/bin/sendEmail -o tls=no -f m18051730665@163.com -t 741696319@qq.com -s smtp.163.com:25 -xu m18051730665 -xp 授权码 -u "MHA Waring" -m "YOUR MHA MAY BE FAILOVER" &>/tmp/sendmail.log
image.png
(3)停止MHA
masterha_stop --conf=/etc/mha/app1.cnf
(4)开启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 &
(5) 关闭主库,看警告邮件
故障修复:
恢复故障节点
(1)实例宕掉
/etc/init.d/mysqld start
(2)主机损坏,有可能数据也损坏了]
三、备份并恢复故障节点。
1.恢复主从环境
看日志文件:
CHANGE MASTER TO MASTER_HOST='10.0.0.52', MASTER_PORT=3306, MASTER_AUTO_POSITION=1, MASTER_USER='repl', MASTER_PASSWORD='123';
start slave ;
2.恢复manager
2.1 修好的故障节点配置信息,加入到配置文件
[server1]
hostname=10.0.0.51
port=3306
2.2 启动manager
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 &
四、binlog server(db03)
(1)添加配置信息
vim /etc/mha/app1.cnf
[binlog1]
no_master=1
hostname=10.0.0.53
master_binlog_dir=/data/mysql/binlog
(2) 创建必要目录
mkdir -p /data/mysql/binlog
chown -R mysql.mysql /data/*
(3)拉取主库binlog日志
cd /data/mysql/binlog
mysqlbinlog -R --host=10.0.0.52 --user=mha --password=mha --raw --stop-never mysql-bin.000001 &
注意:
拉取日志的起点,需要按照目前从库的已经获取到的二进制日志点为起点
(4) 重启MHA
masterha_stop --conf=/etc/mha/app1.cnf
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 &