mha部署及配置是否ok,我们可以借助于mha自带的masterha_check_ssh以及masterha_check_repl脚本来检测。masterha_check_repl检测
mha部署及配置是否ok,,我们可以借助于mha自带的masterha_check_ssh以及masterha_check_repl脚本来检测。masterha_check_repl检测是保证mha成功切换的重要一步。本文主要描述了masterha_check_repl这个检测脚本到底做了些什么事情。有助于更好的理解mha的相关原理及过程等。
1、当前的主从环境
[root@vdbsrv1 ~]# more /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.6 vdbsrv1 #master
192.168.1.7 vdbsrv2 #slave1
192.168.1.8 vdbsrv3 #slave2
192.168.1.12 vdbsrv4 #manager
###os环境
[root@vdbsrv4 ~]# more /etc/issue
centos release 5.9 (final)
kernel \r on an \m
###mysql环境
[root@vdbsrv4 ~]# mysql -e show variables like 'version'
+---------------+------------+
| variable_name | value |
+---------------+------------+
| version | 5.6.22-log |
+---------------+------------+
[root@vdbsrv4 ~]# masterha_manager --version
masterha_manager version 0.56.
2、当前的mha配置信息
[root@vdbsrv4 ~]$ more /etc/masterha/app1.cnf
[server default]
manager_workdir=/var/log/masterha/app1
manager_log=/var/log/masterha/app1/manager.log
user=mha
password=xxx
ssh_user=root
repl_user=repl
repl_password=repl
ping_interval=1
shutdown_script=
master_ip_online_change_script=
report_script=
master_ip_failover_script=/tmp/master_ip_failover
[server1]
hostname=vdbsrv1
master_binlog_dir=/data/mysqldata
[server2]
hostname=vdbsrv2
master_binlog_dir=/data/mysqldata
[server3]
hostname=vdbsrv3
master_binlog_dir=/data/mysqldata/
#candidate_master=1
3、masterha_check_repl检测步骤
a、读取配置文件
b、检测配置文件中列出的mysql服务器(识别主从)
c、检测从库配置信息
read_only参数
relay_log_purge参数
复制过滤规则
d、ssh等效性验证
e、检测主库保存binlog脚本(save_binary_logs) ,主要是用于在master死掉后从binlog读取日志
f、检测各从库能否apply差量binlog(apply_diff_relay_logs)
g、检测ip切换,如果有部署脚本
4、实际检测过程
[root@vdbsrv4 ~]# masterha_check_repl --conf=/etc/masterha/app1.cnf
fri apr 17 18:48:41 2015 - [warning] global configuration file /etc/masterha_default.cnf not found. skipping.
fri apr 17 18:48:41 2015 - [info] reading application default configuration from /etc/masterha/app1.cnf..
fri apr 17 18:48:41 2015 - [info] reading server configuration from /etc/masterha/app1.cnf.. ###读取配置文件
fri apr 17 18:48:41 2015 - [info] mha::mastermonitor version 0.56.
fri apr 17 18:48:42 2015 - [info] gtid failover mode = 0
fri apr 17 18:48:42 2015 - [info] dead servers: ###开始检测配置文件中列出的mysql服务器(识别主从)
fri apr 17 18:48:42 2015 - [info] alive servers:
fri apr 17 18:48:42 2015 - [info] vdbsrv1(192.168.1.6:3306)
fri apr 17 18:48:42 2015 - [info] vdbsrv2(192.168.1.7:3306)
fri apr 17 18:48:42 2015 - [info] vdbsrv3(192.168.1.8:3306)
fri apr 17 18:48:42 2015 - [info] alive slaves:
fri apr 17 18:48:42 2015 - [info] vdbsrv2(192.168.1.7:3306) version=5.6.22-log (oldest major version between slaves) log-bin:enabled
fri apr 17 18:48:42 2015 - [info] replicating from 192.168.1.6(192.168.1.6:3306)
fri apr 17 18:48:42 2015 - [info] vdbsrv3(192.168.1.8:3306) version=5.6.22-log (oldest major version between slaves) log-bin:enabled
fri apr 17 18:48:42 2015 - [info] replicating from 192.168.1.6(192.168.1.6:3306)
fri apr 17 18:48:42 2015 - [info] current alive master: vdbsrv1(192.168.1.6:3306)
fri apr 17 18:48:42 2015 - [info] checking slave configurations.. ###检测从库配置信息
fri apr 17 18:48:42 2015 - [info] read_only=1 is not set on slave vdbsrv2(192.168.1.7:3306).
fri apr 17 18:48:42 2015 - [warning] relay_log_purge=0 is not set on slave vdbsrv2(192.168.1.7:3306).
fri apr 17 18:48:42 2015 - [info] read_only=1 is not set on slave vdbsrv3(192.168.1.8:3306).
fri apr 17 18:48:42 2015 - [warning] relay_log_purge=0 is not set on slave vdbsrv3(192.168.1.8:3306).
fri apr 17 18:48:42 2015 - [info] checking replication filtering settings.. ###检测复制过滤规则
fri apr 17 18:48:42 2015 - [info] binlog_do_db= , binlog_ignore_db=
fri apr 17 18:48:42 2015 - [info] replication filtering check ok.
fri apr 17 18:48:42 2015 - [info] gtid (with auto-pos) is not supported
fri apr 17 18:48:42 2015 - [info] starting ssh connection tests.. ###ssh等效性验证
fri apr 17 18:48:43 2015 - [info] all ssh connection tests passed successfully.
fri apr 17 18:48:43 2015 - [info] checking mha node version..
fri apr 17 18:48:44 2015 - [info] version check ok.
fri apr 17 18:48:44 2015 - [info] checking ssh publickey authentication settings on the current master..
fri apr 17 18:48:44 2015 - [info] healthcheck: ssh to vdbsrv1 is reachable.
fri apr 17 18:48:44 2015 - [info] master mha node version is 0.56.
fri apr 17 18:48:44 2015 - [info] checking recovery script configurations on vdbsrv1(192.168.1.6:3306)..###检测主库保存binlog脚本
fri apr 17 18:48:44 2015 - [info] executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/data/mysqldata
--output_file=/var/tmp/save_binary_logs_test --manager_version=0.56 --start_file=mysql-bin.000012
fri apr 17 18:48:44 2015 - [info] connecting to [email protected](vdbsrv1:22)..
creating /var/tmp if not exists.. ok.
checking output directory is accessible or not..
ok.
binlog found at /data/mysqldata, up to mysql-bin.000012
fri apr 17 18:48:44 2015 - [info] binlog setting check done. ###以下部分检测各从库能否apply差量binlog
fri apr 17 18:48:44 2015 - [info] checking ssh publickey authentication and checking recovery script configurations on all alive slave servers..
fri apr 17 18:48:44 2015 - [info] executing command : apply_diff_relay_logs --command=test --slave_user='mha' --slave_host=vdbsrv2
--slave_ip=192.168.1.7 --slave_port=3306 --workdir=/var/tmp --target_version=5.6.22-log --manager_version=0.56
--relay_log_info=/data/mysqldata/relay-log.info --relay_dir=/data/mysqldata/ --slave_pass=xxx
fri apr 17 18:48:44 2015 - [info] connecting to [email protected](vdbsrv2:22)..
checking slave recovery environment settings..
opening /data/mysqldata/relay-log.info ... ok.
relay log found at /data/mysqldata, up to vdbsrv2-relay-bin.000006
temporary relay log file is /data/mysqldata/vdbsrv2-relay-bin.000006
testing mysql connection and privileges.. done. #author : leshami
testing mysqlbinlog output.. done. #blog :
cleaning up test file(s).. done.
fri apr 17 18:48:44 2015 - [info] executing command : apply_diff_relay_logs --command=test --slave_user='mha' --slave_host=vdbsrv3
--slave_ip=192.168.1.8 --slave_port=3306 --workdir=/var/tmp --target_version=5.6.22-log --manager_version=0.56
--relay_log_info=/data/mysqldata/relay-log.info --relay_dir=/data/mysqldata/ --slave_pass=xxx
fri apr 17 18:48:44 2015 - [info] connecting to [email protected](vdbsrv3:22)..
checking slave recovery environment settings..
opening /data/mysqldata/relay-log.info ... ok.
relay log found at /data/mysqldata, up to vdbsrv3-relay-bin.000006
temporary relay log file is /data/mysqldata/vdbsrv3-relay-bin.000006
testing mysql connection and privileges.. done.
testing mysqlbinlog output.. done.
cleaning up test file(s).. done.
fri apr 17 18:48:45 2015 - [info] slaves settings check done.
fri apr 17 18:48:45 2015 - [info]
vdbsrv1(192.168.1.6:3306) (current master)
+--vdbsrv2(192.168.1.7:3306)
+--vdbsrv3(192.168.1.8:3306)