1. 程式人生 > 實用技巧 >MHA高可用之VIP漂移

MHA高可用之VIP漂移

1.VIP漂移的兩種方式

1.keeplaived的方式
2.MHA自帶的指令碼進行VIP漂移

2.配置MHA讀取VIP漂移指令碼

#編輯配置檔案
[root@db03 ~]# vim /service/mha/app1.cnf
#在[server default]標籤下新增
[server default]
#使用MHA自帶指令碼
master_ip_failover_script=/service/mha/master_ip_failover

3.編寫指令碼

# 預設指令碼存放在
[root@db01 ~]# ll mha4mysql-manager-0.56/samples/scripts/
total 32
-rwxr-xr-x 1 4984 users  3648 Apr  1  2014 master_ip_failover

# 上傳現成的指令碼

# 編輯指令碼
[root@db03 mha]# vim master_ip_failover
.......
my $vip = '172.16.1.50/24';
my $key = '1';
my $ssh_start_vip = "/sbin/ifconfig eth1:$key $vip";
my $ssh_stop_vip = "/sbin/ifconfig eth1:$key down";
......

4.手動繫結VIP

[root@db01 ~]# ifconfig eth1:1 172.16.1.50/24
[root@db01 ~]# ip a
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:2c:76:88 brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.51/24 brd 172.16.1.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet 172.16.1.50/24 brd 172.16.1.255 scope global secondary eth1:1

# 解綁VIP
[root@db01 ~]# ifconfig eth1:1 [172.16.1.50] down
#### 5.重啟MHA

檢測主從

[root@db03 ~]# masterha_check_repl --conf=/service/mha/app1.cnf
MySQL Replication Health is OK.

啟動MHA

[root@db03 mha]# nohup masterha_manager --conf=/service/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /service/mha/manager.log 2>&1 &

啟動失敗:

1.檢查配置檔案語法是否正確
2.授權是否正確
	[root@db03 mha]# chmod 755 master_ip_failover
3.指令碼格式要正確
	[root@db03 mha]# dos2unix master_ip_failover 
	dos2unix: converting file master_ip_failover to Unix format ...
#### 6.測試VIP漂移

停止主庫

[root@db01 ~]# systemctl stop mysqld.service

檢視切換成主庫的ip地址

[root@db02 ~]# ip a
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:3e:56:1f brd ff:ff:ff:ff:ff:ff
inet 172.16.1.52/24 brd 172.16.1.255 scope global noprefixroute eth1
valid_lft forever preferred_lft forever
inet 172.16.1.50/24 brd 172.16.1.255 scope global secondary eth1:1
valid_lft forever preferred_lft forever
inet6 fe80::de8c:34e1:563e:9f2b/64 scope link tentative noprefixroute dadfailed
valid_lft forever preferred_lft forever
inet6 fe80::a3a8:499:ce26:b3be/64 scope link noprefixroute
valid_lft forever preferred_lft forever