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 - [warn