1. 程式人生 > >MySQL之MHA+keepalived方案演示(三)

MySQL之MHA+keepalived方案演示(三)

with rim 關閉 failed amp -o logs log-bin use

一、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 監控節點上操作),如下:

[root@server04 ~]# 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.
[root@server04 ~]# 

ssh免密碼配置是成功的

二、測試MHA數據庫同步

[root@server04 ~]# 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沒有權限
給腳本執行權限

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

再次檢測成功

[root@server04 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.
[root@server04 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的狀態:
[root@server04 bin]# masterha_check_status --conf=/etc/masterha/app1.cnf
app1 is stopped(2:NOT_RUNNING).
[root@server04 bin]#
註意:如果正常,會顯示"PING_OK",否則會顯示"NOT_RUNNING",這代表MHA監控沒有開啟。

4.2開啟MHA Manager監控(server04 192.168.2.130操作)如下:

[root@server04 bin]# mkdir -p  /var/log/masterha/app1/
[root@server04 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
[root@server04 bin]# 

[root@server03 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監控是否正常:

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

4.3查看監控管理日誌:

[root@server03 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命令完成。(只是演示關閉,在測試中,必須是開啟的狀態,如果關了,在測試的時候務必記得開啟)


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

請繼續關註後續博文,後續博文會提到通過keepalived的方式管理虛擬ip的浮動,來實現mysql主庫故障自動提升salve從庫為新的主庫

MySQL之MHA+keepalived方案演示(三)