MySQL之MHA+keepalived方案演示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL之MHA+keepalived方案演示相关的知识,希望对你有一定的参考价值。

一、MHA之SSH免密码登录测试

1.1配置SSH登录无密码验证

上述博文已经提到过,此处再次粘贴出来,防止遗忘此步骤
在server02 192.168.2.128操作(Master):

192.168.2.128 [root ~]$ ssh-keygen -t rsa
192.168.2.128 [root ~]$ ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
192.168.2.128 [root ~]$ ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

每个机器以此类推循环操作免密码

1.2. 测试SSH免密码登录

检查SSH配置(server04 192.168.2.130 Monitor 监控节点上操作),如下:

[[email protected] ~]# masterha_check_ssh --conf=/etc/masterha/app1.cnf
Sun Jul  1 12:25:54 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Sun Jul  1 12:25:54 2018 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:25:54 2018 - [info] Reading server configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:25:54 2018 - [info] Starting SSH connection tests..
Sun Jul  1 12:26:01 2018 - [debug] 
Sun Jul  1 12:25:54 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.128:22) to [email protected](192.168.2.129:22)..
Sun Jul  1 12:25:56 2018 - [debug]   ok.
Sun Jul  1 12:25:56 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.128:22) to [email protected](192.168.2.130:22)..
Sun Jul  1 12:26:01 2018 - [debug]   ok.
Sun Jul  1 12:26:01 2018 - [debug] 
Sun Jul  1 12:25:55 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.129:22) to [email protected](192.168.2.128:22)..
Sun Jul  1 12:25:56 2018 - [debug]   ok.
Sun Jul  1 12:25:56 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.129:22) to [email protected](192.168.2.130:22)..
Sun Jul  1 12:26:01 2018 - [debug]   ok.
Sun Jul  1 12:26:03 2018 - [debug] 
Sun Jul  1 12:25:56 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.130:22) to [email protected](192.168.2.128:22)..
Warning: Permanently added ‘192.168.2.130‘ (RSA) to the list of known hosts.
Sun Jul  1 12:26:01 2018 - [debug]   ok.
Sun Jul  1 12:26:01 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.130:22) to [email protected](192.168.2.129:22)..
Sun Jul  1 12:26:03 2018 - [debug]   ok.
Sun Jul  1 12:26:03 2018 - [info] All SSH connection tests passed successfully.
[[email protected] ~]# 

ssh免密码配置是成功的

二、测试MHA数据库同步

[[email protected] ~]# masterha_check_repl --conf=/etc/masterha/app1.cnf

Sun Jul  1 12:29:31 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Sun Jul  1 12:29:31 2018 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:29:31 2018 - [info] Reading server configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:29:31 2018 - [info] MHA::MasterMonitor version 0.56.
Sun Jul  1 12:29:31 2018 - [info] GTID failover mode = 0
Sun Jul  1 12:29:31 2018 - [info] Dead Servers:
Sun Jul  1 12:29:31 2018 - [info] Alive Servers:
Sun Jul  1 12:29:31 2018 - [info]   192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:29:31 2018 - [info]   192.168.2.129(192.168.2.129:3306)
Sun Jul  1 12:29:31 2018 - [info]   192.168.2.130(192.168.2.130:3306)
Sun Jul  1 12:29:31 2018 - [info] Alive Slaves:
Sun Jul  1 12:29:31 2018 - [info]   192.168.2.129(192.168.2.129:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 12:29:31 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:29:31 2018 - [info]     Primary candidate for the new Master (candidate_master is set)
Sun Jul  1 12:29:31 2018 - [info]   192.168.2.130(192.168.2.130:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 12:29:31 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:29:31 2018 - [info] Current Alive Master: 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:29:31 2018 - [info] Checking slave configurations..
Sun Jul  1 12:29:31 2018 - [info]  read_only=1 is not set on slave 192.168.2.129(192.168.2.129:3306).
Sun Jul  1 12:29:31 2018 - [info] Checking replication filtering settings..
Sun Jul  1 12:29:31 2018 - [info]  binlog_do_db= , binlog_ignore_db= 
Sun Jul  1 12:29:31 2018 - [info]  Replication filtering check ok.
Sun Jul  1 12:29:31 2018 - [info] GTID (with auto-pos) is not supported
Sun Jul  1 12:29:31 2018 - [info] Starting SSH connection tests..
Sun Jul  1 12:29:33 2018 - [info] All SSH connection tests passed successfully.
Sun Jul  1 12:29:33 2018 - [info] Checking MHA Node version..
Sun Jul  1 12:29:33 2018 - [info]  Version check ok.
Sun Jul  1 12:29:33 2018 - [info] Checking SSH publickey authentication settings on the current master..
Sun Jul  1 12:29:33 2018 - [info] HealthCheck: SSH to 192.168.2.128 is reachable.
Sun Jul  1 12:29:34 2018 - [info] Master MHA Node version is 0.56.
Sun Jul  1 12:29:34 2018 - [info] Checking recovery script configurations on 192.168.2.128(192.168.2.128:3306)..
Sun Jul  1 12:29:34 2018 - [info]   Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/data/mysql/logs/bin-log --output_file=/tmp/save_binary_logs_test --

manager_version=0.56 --start_file=mysql-bin.000004 
Sun Jul  1 12:29:34 2018 - [info]   Connecting to [email protected](192.168.2.128:22).. 
  Creating /tmp if not exists..    ok.
  Checking output directory is accessible or not..
   ok.
  Binlog found at /data/mysql/logs/bin-log, up to mysql-bin.000004
Sun Jul  1 12:29:34 2018 - [info] Binlog setting check done.
Sun Jul  1 12:29:34 2018 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Sun Jul  1 12:29:34 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.129 --slave_ip=192.168.2.129 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 12:29:34 2018 - [info]   Connecting to [email protected](192.168.2.129:22).. 
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 12:29:35 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.130 --slave_ip=192.168.2.130 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 12:29:35 2018 - [info]   Connecting to [email protected](192.168.2.130:22).. 
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 12:29:35 2018 - [info] Slaves settings check done.
Sun Jul  1 12:29:35 2018 - [info] 
192.168.2.128(192.168.2.128:3306) (current master)
 +--192.168.2.129(192.168.2.129:3306)
 +--192.168.2.130(192.168.2.130:3306)

Sun Jul  1 12:29:35 2018 - [info] Checking replication health on 192.168.2.129..
Sun Jul  1 12:29:35 2018 - [info]  ok.
Sun Jul  1 12:29:35 2018 - [info] Checking replication health on 192.168.2.130..
Sun Jul  1 12:29:35 2018 - [info]  ok.
Sun Jul  1 12:29:35 2018 - [info] Checking master_ip_failover_script status:
Sun Jul  1 12:29:35 2018 - [info]   /usr/local/bin/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.2.128 --orig_master_ip=192.168.2.128 --orig_master_port=3306 
Sun Jul  1 12:29:35 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations. Can‘t exec "/usr/local/bin/master_ip_failover": Permission 

denied at /usr/share/perl5/vendor_perl/MHA/ManagerUtil.pm line 68.
Sun Jul  1 12:29:35 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln523] Error happened on monitoring servers.
Sun Jul  1 12:29:35 2018 - [info] Got exit code 1 (Not master dead).

MySQL Replication Health is NOT OK!
Sun Jul  1 12:29:35 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln226]  Failed to get master_ip_failover_script status with return code 1:0.
Sun Jul  1 12:29:35 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations.  at /usr/local/bin/masterha_check_repl line 48
Sun Jul  1 12:29:35 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln523] Error happened on monitoring servers.
Sun Jul  1 12:29:35 2018 - [info] Got exit code 1 (Not master dead).

MySQL Replication Health is NOT OK!

检查报错,提示jjiaoben没有权限
给脚本执行权限

[[email protected] ~]# chmod +x /usr/local/bin/masterha_check_repl
[[email protected] ~]# ll /usr/local/bin/master_ip_failover
-rw-r--r-- 1 root root 2173 Jun 30 17:29 /usr/local/bin/master_ip_failover
[[email protected] ~]# chmod +x /usr/local/bin/master_ip_failover

再次检测成功

[[email protected] bin]# masterha_check_repl --conf=/etc/masterha/app1.cnf
Sun Jul  1 15:08:21 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Sun Jul  1 15:08:21 2018 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
Sun Jul  1 15:08:21 2018 - [info] Reading server configuration from /etc/masterha/app1.cnf..
Sun Jul  1 15:08:21 2018 - [info] MHA::MasterMonitor version 0.56.
Sun Jul  1 15:08:21 2018 - [info] GTID failover mode = 0
Sun Jul  1 15:08:21 2018 - [info] Dead Servers:
Sun Jul  1 15:08:21 2018 - [info] Alive Servers:
Sun Jul  1 15:08:21 2018 - [info]   192.168.2.128(192.168.2.128:3306)
Sun Jul  1 15:08:21 2018 - [info]   192.168.2.129(192.168.2.129:3306)
Sun Jul  1 15:08:21 2018 - [info]   192.168.2.130(192.168.2.130:3306)
Sun Jul  1 15:08:21 2018 - [info] Alive Slaves:
Sun Jul  1 15:08:21 2018 - [info]   192.168.2.129(192.168.2.129:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 15:08:21 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 15:08:21 2018 - [info]     Primary candidate for the new Master (candidate_master is set)
Sun Jul  1 15:08:21 2018 - [info]   192.168.2.130(192.168.2.130:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 15:08:21 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 15:08:21 2018 - [info] Current Alive Master: 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 15:08:21 2018 - [info] Checking slave configurations..
Sun Jul  1 15:08:21 2018 - [info]  read_only=1 is not set on slave 192.168.2.129(192.168.2.129:3306).
Sun Jul  1 15:08:21 2018 - [info] Checking replication filtering settings..
Sun Jul  1 15:08:21 2018 - [info]  binlog_do_db= , binlog_ignore_db= 
Sun Jul  1 15:08:21 2018 - [info]  Replication filtering check ok.
Sun Jul  1 15:08:21 2018 - [info] GTID (with auto-pos) is not supported
Sun Jul  1 15:08:21 2018 - [info] Starting SSH connection tests..
Sun Jul  1 15:08:23 2018 - [info] All SSH connection tests passed successfully.
Sun Jul  1 15:08:23 2018 - [info] Checking MHA Node version..
Sun Jul  1 15:08:23 2018 - [info]  Version check ok.
Sun Jul  1 15:08:23 2018 - [info] Checking SSH publickey authentication settings on the current master..
Sun Jul  1 15:08:23 2018 - [info] HealthCheck: SSH to 192.168.2.128 is reachable.
Sun Jul  1 15:08:23 2018 - [info] Master MHA Node version is 0.56.
Sun Jul  1 15:08:23 2018 - [info] Checking recovery script configurations on 192.168.2.128(192.168.2.128:3306)..
Sun Jul  1 15:08:23 2018 - [info]   Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/data/mysql/logs/bin-log --output_file=/tmp/save_binary_logs_test --

manager_version=0.56 --start_file=mysql-bin.000004 
Sun Jul  1 15:08:23 2018 - [info]   Connecting to [email protected](192.168.2.128:22).. 
  Creating /tmp if not exists..    ok.
  Checking output directory is accessible or not..
   ok.
  Binlog found at /data/mysql/logs/bin-log, up to mysql-bin.000004
Sun Jul  1 15:08:24 2018 - [info] Binlog setting check done.
Sun Jul  1 15:08:24 2018 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Sun Jul  1 15:08:24 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.129 --slave_ip=192.168.2.129 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 15:08:24 2018 - [info]   Connecting to [email protected](192.168.2.129:22).. 
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 15:08:24 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.130 --slave_ip=192.168.2.130 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 15:08:24 2018 - [info]   Connecting to [email protected](192.168.2.130:22).. 
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 15:08:24 2018 - [info] Slaves settings check done.
Sun Jul  1 15:08:24 2018 - [info] 
192.168.2.128(192.168.2.128:3306) (current master)
 +--192.168.2.129(192.168.2.129:3306)
 +--192.168.2.130(192.168.2.130:3306)

Sun Jul  1 15:08:24 2018 - [info] Checking replication health on 192.168.2.129..
Sun Jul  1 15:08:24 2018 - [info]  ok.
Sun Jul  1 15:08:24 2018 - [info] Checking replication health on 192.168.2.130..
Sun Jul  1 15:08:24 2018 - [info]  ok.
Sun Jul  1 15:08:24 2018 - [info] Checking master_ip_failover_script status:
Sun Jul  1 15:08:24 2018 - [info]   /usr/local/bin/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.2.128 --orig_master_ip=192.168.2.128 --orig_master_port=3306 
Sun Jul  1 15:08:24 2018 - [info]  OK.
Sun Jul  1 15:08:24 2018 - [warning] shutdown_script is not defined.
Sun Jul  1 15:08:24 2018 - [info] Got exit code 0 (Not master dead).

MySQL Replication Health is OK.
[[email protected] bin]# 

三、定时清理relay_log日志

可以把脚本写入2台slave从库机器的定时任务里面

192.168.2.129 [root ~]$ cat purge_relay_log.sh 
#!/bin/bash
user=root
passwd=123456
port=3306
log_dir=‘/data/masterha/log‘
work_dir=‘/data‘
purge=‘/usr/local/bin/purge_relay_logs‘

if [ ! -d $log_dir ]
then
   mkdir $log_dir -p
fi

$purge --user=$user --password=$passwd --disable_relay_log_purge --port=$port --workdir=$work_dir >> $log_dir/purge_relay_logs.log 2>&1

192.168.2.129 [root ~]$ crontab -l
4 * * * /bin/bash /root/purge_relay_log.sh

四、启动MHA监控服务

4.1检查MHA Manager的状态

通过master_check_status脚本查看Manager的状态:
[[email protected] bin]# masterha_check_status --conf=/etc/masterha/app1.cnf
app1 is stopped(2:NOT_RUNNING).
[[email protected] bin]#
注意:如果正常,会显示"PING_OK",否则会显示"NOT_RUNNING",这代表MHA监控没有开启。

4.2开启MHA Manager监控(server04 192.168.2.130操作)如下:

[[email protected] bin]# mkdir -p  /var/log/masterha/app1/
[[email protected] bin]# nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &
[1] 42048
[[email protected] bin]# 

[[email protected] bin]# ps -ef|grep perl
root      42048  41142  0 12:50 pts/4    00:00:00 perl /usr/local/bin/masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover

参数介绍:

--remove_dead_master_conf      //该参数代表当发生主从切换后,老的主库的ip将会从配置文件中移除。

--manger_log                   //日志存放位置

--ignore_last_failover         //在缺省情况下,如果MHA检测到连续发生宕机,且两次宕机间隔不足8小时的话,则不会进行Failover,之所以这样限制是为了避免ping-pong效应。该参数代表忽略上次MHA触发切换产生的

文件,默认情况下,MHA发生切换后会在日志目录,也就是上面我设置的/data产生app1.failover.complete文件,下次再次切换的时候如果发现该目录下存在该文件将不允许触发切换,除非在第一次切换后收到删除该文件,

为了方便,这里设置为--ignore_last_failover。

查看MHA Manager监控是否正常:

[[email protected] bin]# masterha_check_status --conf=/etc/masterha/app1.cnf
app1 (pid:42048) is running(0:PING_OK), master:192.168.2.128
[[email protected] bin]# 

4.3查看监控管理日志:

[[email protected] bin]# cat /var/log/masterha/app1/manager.log
Sun Jul  1 12:51:00 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Sun Jul  1 12:51:00 2018 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:51:00 2018 - [info] Reading server configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:51:00 2018 - [info] MHA::MasterMonitor version 0.56.
Sun Jul  1 12:51:00 2018 - [info] GTID failover mode = 0
Sun Jul  1 12:51:00 2018 - [info] Dead Servers:
Sun Jul  1 12:51:00 2018 - [info] Alive Servers:
Sun Jul  1 12:51:00 2018 - [info]   192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:51:00 2018 - [info]   192.168.2.129(192.168.2.129:3306)
Sun Jul  1 12:51:00 2018 - [info]   192.168.2.130(192.168.2.130:3306)
Sun Jul  1 12:51:00 2018 - [info] Alive Slaves:
Sun Jul  1 12:51:00 2018 - [info]   192.168.2.129(192.168.2.129:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 12:51:00 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:51:00 2018 - [info]     Primary candidate for the new Master (candidate_master is set)
Sun Jul  1 12:51:00 2018 - [info]   192.168.2.130(192.168.2.130:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 12:51:00 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:51:00 2018 - [info] Current Alive Master: 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:51:00 2018 - [info] Checking slave configurations..
Sun Jul  1 12:51:00 2018 - [info]  read_only=1 is not set on slave 192.168.2.129(192.168.2.129:3306).
Sun Jul  1 12:51:00 2018 - [info] Checking replication filtering settings..
Sun Jul  1 12:51:00 2018 - [info]  binlog_do_db= , binlog_ignore_db= 
Sun Jul  1 12:51:00 2018 - [info]  Replication filtering check ok.
Sun Jul  1 12:51:00 2018 - [info] GTID (with auto-pos) is not supported
Sun Jul  1 12:51:00 2018 - [info] Starting SSH connection tests..
Sun Jul  1 12:51:02 2018 - [info] All SSH connection tests passed successfully.
Sun Jul  1 12:51:02 2018 - [info] Checking MHA Node version..
Sun Jul  1 12:51:02 2018 - [info]  Version check ok.
Sun Jul  1 12:51:02 2018 - [info] Checking SSH publickey authentication settings on the current master..
Sun Jul  1 12:51:03 2018 - [info] HealthCheck: SSH to 192.168.2.128 is reachable.
Sun Jul  1 12:51:03 2018 - [info] Master MHA Node version is 0.56.
Sun Jul  1 12:51:03 2018 - [info] Checking recovery script configurations on 192.168.2.128(192.168.2.128:3306)..
Sun Jul  1 12:51:03 2018 - [info]   Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/data/mysql/logs/bin-log --output_file=/tmp/save_binary_logs_test --

manager_version=0.56 --start_file=mysql-bin.000004 
Sun Jul  1 12:51:03 2018 - [info]   Connecting to [email protected](192.168.2.128:22).. 
  Creating /tmp if not exists..    ok.
  Checking output directory is accessible or not..
   ok.
  Binlog found at /data/mysql/logs/bin-log, up to mysql-bin.000004
Sun Jul  1 12:51:03 2018 - [info] Binlog setting check done.
Sun Jul  1 12:51:03 2018 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Sun Jul  1 12:51:03 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.129 --slave_ip=192.168.2.129 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 12:51:03 2018 - [info]   Connecting to [email protected](192.168.2.129:22).. 
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 12:51:03 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.130 --slave_ip=192.168.2.130 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 12:51:03 2018 - [info]   Connecting to [email protected](192.168.2.130:22).. 
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 12:51:04 2018 - [info] Slaves settings check done.
Sun Jul  1 12:51:04 2018 - [info] 
192.168.2.128(192.168.2.128:3306) (current master)
 +--192.168.2.129(192.168.2.129:3306)
 +--192.168.2.130(192.168.2.130:3306)

Sun Jul  1 12:51:04 2018 - [info] Checking master_ip_failover_script status:
Sun Jul  1 12:51:04 2018 - [info]   /usr/local/bin/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.2.128 --orig_master_ip=192.168.2.128 --orig_master_port=3306 
Sun Jul  1 12:51:04 2018 - [info]  OK.
Sun Jul  1 12:51:04 2018 - [warning] shutdown_script is not defined.
Sun Jul  1 12:51:04 2018 - [info] Set master ping interval 1 seconds.
Sun Jul  1 12:51:04 2018 - [info] Set secondary check script: /usr/local/bin/masterha_secondary_check -s server03 -s server02 --user=root --master_host=server02 --master_ip=192.168.2.128 --

master_port=3306
Sun Jul  1 12:51:04 2018 - [info] Starting ping health check on 192.168.2.128(192.168.2.128:3306)..
Sun Jul  1 12:51:04 2018 - [info] Ping(SELECT) succeeded, waiting until MySQL doesn‘t respond..

五、关闭MHA Manage监控

(server04 192.168.2.130操作)如下:

关闭很简单,使用masterha_stop命令完成。(只是演示关闭,在测试中,必须是开启的状态,如果关了,在测试的时候务必记得开启)


[[email protected] bin]# masterha_stop --conf=/etc/masterha/app1.cnf
Stopped app1 successfully.
[[email protected] bin]# ps -ef|grep perl
root      46691  40702  0 14:00 pts/3    00:00:00 grep perl
[[email protected] bin]# 

请继续关注后续博文,后续博文会提到通过keepalived的方式管理虚拟ip的浮动,来实现mysql主库故障自动提升salve从库为新的主库

以上是关于MySQL之MHA+keepalived方案演示的主要内容,如果未能解决你的问题,请参考以下文章

MySQL之MHA+keepalived方案演示

MySQL之MHA+keepalived方案演示

MySQL之MHA+keepalived方案演示

MySQL HA方案之MySQL半复制+MHA+Keepalived+Atlas+LVS(下)

MySQL高可用之KeepAlived+双主

MySQL 高可用性之keepalived+mysql双主