7.2编辑MHA的配置文件,以及建立对应的工作目录,并将这些目录的属主属组更改为MySQL。如果不做更改SSH/同步检查不会报错,但使用其他命令和切换会报权限错误,建议更改属主属组便于后续的维护配置。
[root@172-16-3-189 ~] mkdir ‐p /etc/masterha
[root@172-16-3-189 masterha]# mkdir -p /var/log/masterha/app_3306
[root@172-16-3-189 masterha]# mkdir /opt/shells/masterha
[root@172-16-3-189 we_ops_admin]# chown -R mysql:mysql /var/log/masterha/
[root@172-16-3-189 masterha]# chown -R mysql:mysql /etc/masterha/
[root@172-16-3-189 masterha]# chown -R mysql:mysql /opt/shells/masterha/
[root@172-16-3-189 masterha]# cat /etc/masterha/app_3306.cnf #编辑MHA的配置文件
[root@172-16-3-189 masterha]# cat app_3306.cnf
[server default]
# mysql user and password
user=mha_monitor
password=mha_monitor
repl_user=repl
repl_password=repl
ssh_user=mysql
ssh_port=22222
# working directory on the manager
manager_workdir=/var/log/masterha/app_3306
# working directory on MySQL servers
remote_workdir=/var/log/masterha/app_3306
ping_interval=1
master_ip_failover_script=/opt/shells/masterha/master_ip_failover_3306
master_ip_online_change_script=/opt/shells/masterha/master_ip_online_change_script_3306
[server1]
hostname=172.16.3.190
port=3306
master_binlog_dir=/opt/app/mysql_3306/data
[server2]
hostname=172.16.3.189
port=3306
master_binlog_dir=/opt/app/mysql_3306/data
7.3编辑自动漂移和手动漂移的脚本文件并授予可执行权限,以及VIP漂移处给予sudo的权限,这里将用户设置为可sudo,是给予摘除和添加VIP的权限
[root@172-16-3-189 we_ops_admin]# chmod +x /opt/shells/masterha/master_ip_failover_3306
[root@172-16-3-189 we_ops_admin]# chmod +x /opt/shells/masterha/master_ip_online_change_script_3306
编辑脚本文件master_ip_failover_3306,修改如下行为:
my $ssh_start_vip = "sudo /sbin/ifconfig eth0:$key $vip;sudo /sbin/arping -I eth0:0 -c 5 -s 172.16.3.123 172.16.0.1 >/dev/null 2>&1"
编辑master_ip_online_change_script_3306修改如下行为:
my $ssh_start_vip = "sudo /sbin/ifconfig eth0:$key $vip;sudo /sbin/arping -I eth0:0 -c 5 -s 172.16.3.123 172.16.0.1 >/dev/null 2>&1"
`ssh mysql\@${new_master_host} \" $ssh_start_vip \"`; #将root用户替换为MySQL用户,这里会进行SSH添加VIP
`ssh mysql\@${orig_master_host} \" $ssh_stop_vip \"`; #讲root用户替换为MySQL用户,这里会进行SSH摘除VIP
三、MHA健康检查(传递公钥的用户模式下进行检查)
1、检查SSH免密码登录
[mysql@172-16-3-189 ~]$ masterha_check_ssh --conf=/etc/masterha/app_3306.cnf
2、检查同步状态
[mysql@172-16-3-189 ~]$ masterha_check_repl --conf=/etc/masterha/app_3306.cnf
3、检查manager自动漂移服务是否开启
[mysql@172-16-3-189 ~]$ masterha_check_status --conf=/etc/masterha/app_3306.cnf
四、切换测试(漂移过程及结果不做赘述,传递公钥的用户模式下进行漂移)
1、手动切换,并检查同步状态是否正常
[mysql@172-16-3-189 ~]$ masterha_master_switch --conf=/etc/masterha/app_3306.cnf --master_state=alive --orig_master_is_new_slave -interactive=0
2、自动切换,并查看VIP是否成功漂移
关闭master实例,发现VIP成功从master摘除并漂移到slave上
五、遇到的问题总结
1、MHA的工作目录公钥用户对此没有权限
2、摘除、添加VIP需要有sudo权限
3、在线切换的用户要使用公钥用户而不是不用的root用户
4、手动切换的过程中,使用公钥用户进行,不必进行sudo -s给予sudo权限,否则会多余输入密码
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx