ot@192.168.3.27(192.168.3.27)..
Creating /mha/appl if not exists.. ok.
Checking output directory is accessible or not..
ok.
Binlog found at /data/lib/mysql, up to mysql-bin.000004
Mon Jul 21 10:40:14 2014 - [info] Master setting check done.
Mon Jul 21 10:40:14 2014 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Mon Jul 21 10:40:14 2014 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.3.28 --slave_ip=192.168.3.28 --slave_port=3306 --workdir=/mha/appl --target_version=5.5.17-log --manager_version=0.55 --relay_log_info=/data/lib/mysql/relay-log.info --relay_dir=/data/lib/mysql/ --slave_pass=xxx
Mon Jul 21 10:40:14 2014 - [info] Connecting to root@192.168.3.28(192.168.3.28:22)..
Checking slave recovery environment settings..
Opening /data/lib/mysql/relay-log.info ... ok.
Relay log found at /data/lib/mysql, up to mysql-relay-bin.000006
Temporary relay log file is /data/lib/mysql/mysql-relay-bin.000006
Testing mysql connection and privileges.. done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Mon Jul 21 10:40:14 2014 - [info] Executing command : apply_diff_relay_logs --command=test --slave_user='root' --slave_host=192.168.3.25 --slave_ip=192.168.3.25 --slave_port=3306 --workdir=/mha/appl --target_version=5.5.17 --manager_version=0.55 --relay_log_info=/data/lib/mysql/relay-log.info --relay_dir=/data/lib/mysql/ --slave_pass=xxx
Mon Jul 21 10:40:14 2014 - [info] Connecting to root@192.168.3.25(192.168.3.25:22)..
Creating directory /mha/appl.. done.
Checking slave recovery environment settings..
Opening /data/lib/mysql/relay-log.info ... ok.
Relay log found at /data/lib/mysql, up to mysql-relay-bin.000008
Temporary relay log file is /data/lib/mysql/mysql-relay-bin.000008
Testing mysql connection and privileges.. done.
Testing mysqlbinlog output.. done.
Cleaning up test file(s).. done.
Mon Jul 21 10:40:15 2014 - [info] Slaves settings check done.
Mon Jul 21 10:40:15 2014 - [info]
192.168.3.27 (current master)
+--192.168.3.28
+--192.168.3.25
Mon Jul 21 10:40:15 2014 - [info] Checking replication health on 192.168.3.28..
Mon Jul 21 10:40:15 2014 - [info] ok.
Mon Jul 21 10:40:15 2014 - [info] Checking replication health on 192.168.3.25..
Mon Jul 21 10:40:15 2014 - [info] ok.
Mon Jul 21 10:40:15 2014 - [warning] master_ip_failover_script is not defined.
Mon Jul 21 10:40:15 2014 - [warning] shutdown_script is not defined.
Mon Jul 21 10:40:15 2014 - [info] Got exit code 0 (Not master dead).
MySQL Replication Health is OK.
注:如果有错误,根据检查的错误提示,进行相应的修改设置()。
从中可以看出,该命令首先从主配置文件和应用配置文件中读取相关参数,然后检查各个Slave的状态、参数配置、SSH连通性、执行save_binary_logs、apply_diff_relay_logs命令等操作,确保最后的提示为“MySQL Replication Health is OK”,否则需要重新检查MySQL Replication配置。
另外,其中给出了两个警告,提示没有定义master_ip_failover_script、shutdown_script,这个暂且不管,在后面环节再详细说明。
三、测试
经过上面一系列步骤,成功搭建及配置了MHA,下面我们就来简单试用一下,并进行一下功能测试。
1.命令工具
MHA提供的命令工具包括Manager工具和Node工具,简单介绍如下:
? Manager工具
/usr/bin/masterha_check_repl ??检查MySQL Replication是否正常;
/usr/bin/masterha_conf_host ??添加或删除配置的Server信息;
/usr/bin/masterha_master_switch ??用于手动Master切换;
/usr/bin/masterha_check_ssh ??检查各个Node之间SSH登录是否正常;
/usr/bin/masterha_manager ??开启MHA
/usr/bin/masterha_secondary_check ??检查多路由配置;
/usr/bin/masterha_check_status ??检查MHA是否开启