四十五、MHA之VIP漂移
MHA之VIP漂移介绍
VIP: Virtual ip
配置VIP,以便在MHA集群中master主机宕机后,让客户端无需修改数据库地址,通过VIP进行无缝切换。
注意自带的VIP漂移脚本只能在同网段使用,跨网段不行
使用keeplived可以跨网段
配置
1、在manager上编辑配置文件
$ vim /etc/mha/app1.cnf
[server default]
master_ip_failover_script=/usr/local/bin/master_ip_failover
...
$ unzip MHA-2019-6.28.zip
$ cp master_ip_failover.txt /usr/local/bin/master_ip_failover
指明使用虚拟IP漂移的脚本路径
master_ip_failover脚本在MHA-2019-6.28.zip中,这里下载
2、修改master_ip_failover脚本
vim /usr/local/bin/master_ip_failover
my $vip = '10.154.0.120/24';
my $key = '1';
my $ssh_start_vip = "/sbin/ifconfig ens34:$key $vip";
my $ssh_stop_vip = "/sbin/ifconfig ens34:$key down";
因为虚拟ip是绑定在网卡上的,需要ifconfig
查看一下本机网卡名称
这里要指定一个空闲IP即未使用的ip地址作为虚拟IP
key为ens34:1中的1,挂在真实网卡下的虚拟网卡编号
3、改变master_ip_failover编码格式
$ yum install -y dos2unix
$ dos2unix /usr/local/bin/master_ip_failover
dos2unix: converting file /usr/local/bin/master_ip_failover to Unix format ...
$ chmod +x /usr/local/bin/master_ip_failover
为什么使用dos2unix转换?因为脚本是在windows下编辑的,换行符不符合unix编码规范,所以要转换为unix换行符编码规范。
4、手工添加vip
$ ifconfig ens34:1 10.154.0.120/24
这时就会发现有一块虚拟网卡了
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 &
$ masterha_check_status --conf=/etc/mha/app1.cnf
app1 (pid:14410) is running(0:PING_OK), master:10.154.0.111
学习来自:B站课程:搭建MHA高可用 P146,《MySQL入门与提高实践》第18章,MySQL-MHA高可用方案
今天的学习是为了以后的工作更加的轻松!