原 【DB宝19】在Docker中使用MySQL高可用之MHA
三、测试MHA相关功能
在正式测试之前,我们要保证MHA环境已经配置正确,且MHA管理进程已经启动。
3.1 检查MHA环境的配置
在Manager节点检查SSH、复制及MHA的状态。
3.1.1 检查SSH情况:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [root@MHA-LHR-Monitor-ip134 /]# masterha_check_ssh --conf=/etc/mha/mha.cnf Sat Aug 8 09:57:42 2020 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping. Sat Aug 8 09:57:42 2020 - [info] Reading application default configuration from /etc/mha/mha.cnf.. Sat Aug 8 09:57:42 2020 - [info] Reading server configuration from /etc/mha/mha.cnf.. Sat Aug 8 09:57:42 2020 - [info] Starting SSH connection tests.. Sat Aug 8 09:57:43 2020 - [debug] Sat Aug 8 09:57:42 2020 - [debug] Connecting via SSH from root@192.168.68.131(192.168.68.131:22) to root@192.168.68.132(192.168.68.132:22).. Sat Aug 8 09:57:42 2020 - [debug] ok. Sat Aug 8 09:57:42 2020 - [debug] Connecting via SSH from root@192.168.68.131(192.168.68.131:22) to root@192.168.68.133(192.168.68.133:22).. Sat Aug 8 09:57:42 2020 - [debug] ok. Sat Aug 8 09:57:43 2020 - [debug] Sat Aug 8 09:57:42 2020 - [debug] Connecting via SSH from root@192.168.68.132(192.168.68.132:22) to root@192.168.68.131(192.168.68.131:22).. Sat Aug 8 09:57:42 2020 - [debug] ok. Sat Aug 8 09:57:42 2020 - [debug] Connecting via SSH from root@192.168.68.132(192.168.68.132:22) to root@192.168.68.133(192.168.68.133:22).. Sat Aug 8 09:57:43 2020 - [debug] ok. Sat Aug 8 09:57:44 2020 - [debug] Sat Aug 8 09:57:43 2020 - [debug] Connecting via SSH from root@192.168.68.133(192.168.68.133:22) to root@192.168.68.131(192.168.68.131:22).. Sat Aug 8 09:57:43 2020 - [debug] ok. Sat Aug 8 09:57:43 2020 - [debug] Connecting via SSH from root@192.168.68.133(192.168.68.133:22) to root@192.168.68.132(192.168.68.132:22).. Sat Aug 8 09:57:43 2020 - [debug] ok. Sat Aug 8 09:57:44 2020 - [info] All SSH connection tests passed successfully. |
结果“All SSH connection tests passed successfully.”表示MHA的3个数据节点之间的SSH是正常的。
3.1.2 检查复制情况:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | [root@MHA-LHR-Monitor-ip134 /]# masterha_check_repl --conf=/etc/mha/mha.cnf Sat Aug 8 09:59:31 2020 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping. Sat Aug 8 09:59:31 2020 - [info] Reading application default configuration from /etc/mha/mha.cnf.. Sat Aug 8 09:59:31 2020 - [info] Reading server configuration from /etc/mha/mha.cnf.. Sat Aug 8 09:59:31 2020 - [info] MHA::MasterMonitor version 0.58. Sat Aug 8 09:59:33 2020 - [info] GTID failover mode = 1 Sat Aug 8 09:59:33 2020 - [info] Dead Servers: Sat Aug 8 09:59:33 2020 - [info] Alive Servers: Sat Aug 8 09:59:33 2020 - [info] 192.168.68.131(192.168.68.131:3306) Sat Aug 8 09:59:33 2020 - [info] 192.168.68.132(192.168.68.132:3306) Sat Aug 8 09:59:33 2020 - [info] 192.168.68.133(192.168.68.133:3306) Sat Aug 8 09:59:33 2020 - [info] Alive Slaves: Sat Aug 8 09:59:33 2020 - [info] 192.168.68.132(192.168.68.132:3306) Version=5.7.30-log (oldest major version between slaves) log-bin:enabled Sat Aug 8 09:59:33 2020 - [info] GTID ON Sat Aug 8 09:59:33 2020 - [info] Replicating from 192.168.68.131(192.168.68.131:3306) Sat Aug 8 09:59:33 2020 - [info] Primary candidate for the new Master (candidate_master is set) Sat Aug 8 09:59:33 2020 - [info] 192.168.68.133(192.168.68.133:3306) Version=5.7.30-log (oldest major version between slaves) log-bin:enabled Sat Aug 8 09:59:33 2020 - [info] GTID ON Sat Aug 8 09:59:33 2020 - [info] Replicating from 192.168.68.131(192.168.68.131:3306) Sat Aug 8 09:59:33 2020 - [info] Current Alive Master: 192.168.68.131(192.168.68.131:3306) Sat Aug 8 09:59:33 2020 - [info] Checking slave configurations.. Sat Aug 8 09:59:33 2020 - [info] read_only=1 is not set on slave 192.168.68.132(192.168.68.132:3306). Sat Aug 8 09:59:33 2020 - [info] read_only=1 is not set on slave 192.168.68.133(192.168.68.133:3306). Sat Aug 8 09:59:33 2020 - [info] Checking replication filtering settings.. Sat Aug 8 09:59:33 2020 - [info] binlog_do_db= , binlog_ignore_db= information_schema,mysql,performance_schema,sys Sat Aug 8 09:59:33 2020 - [info] Replication filtering check ok. Sat Aug 8 09:59:33 2020 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking. Sat Aug 8 09:59:33 2020 - [info] Checking SSH publickey authentication settings on the current master.. Sat Aug 8 09:59:33 2020 - [info] HealthCheck: SSH to 192.168.68.131 is reachable. Sat Aug 8 09:59:33 2020 - [info] 192.168.68.131(192.168.68.131:3306) (current master) +--192.168.68.132(192.168.68.132:3306) +--192.168.68.133(192.168.68.133:3306) Sat Aug 8 09:59:33 2020 - [info] Checking replication health on 192.168.68.132.. Sat Aug 8 09:59:33 2020 - [info] ok. Sat Aug 8 09:59:33 2020 - [info] Checking replication health on 192.168.68.133.. Sat Aug 8 09:59:33 2020 - [info] ok. Sat Aug 8 09:59:33 2020 - [info] Checking master_ip_failover_script status: Sat Aug 8 09:59:33 2020 - [info] /usr/local/mha/scripts/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.68.131 --orig_master_ip=192.168.68.131 --orig_master_port=3306 IN SCRIPT TEST====/sbin/ip addr del 192.168.68.135/24 dev eth0==/sbin/ifconfig eth0:1 192.168.68.135/24=== Checking the Status of the script.. OK Sat Aug 8 09:59:33 2020 - [info] OK. Sat Aug 8 09:59:33 2020 - [warning] shutdown_script is not defined. Sat Aug 8 09:59:33 2020 - [info] Got exit code 0 (Not master dead). MySQL Replication Health is OK. |
“MySQL Replication Health is OK.”表示1主2从的架构目前是正常的。
3.1.3 检查MHA状态:
1 2 | [root@MHA-LHR-Monitor-ip134 /]# masterha_check_status --conf=/etc/mha/mha.cnf mha is stopped(2:NOT_RUNNING). |
注意:如果正常,会显示“PING_OK",否则会显示“NOT_RUNNING",这代表MHA监控没有开启。
3.1.4 启动MHA Manager
1 2 3 4 | [root@MHA-LHR-Monitor-ip134 /]# nohup masterha_manager --conf=/etc/mha/mha.cnf --ignore_last_failover < /dev/null > /usr/local/mha/manager_start.log 2>&1 & [1] 216 [root@MHA-LHR-Monitor-ip134 /]# masterha_check_status --conf=/etc/mha/mha.cnf mha (pid:216) is running(0:PING_OK), master:192.168.68.131 |
检查结果显示“PING_OK”,表示MHA监控软件已经启动了,主库为192.168.68.131。
启动参数介绍:
--remove_dead_master_conf 该参数代表当发生主从切换后,老的主库的IP将会从配置文件中移除。
--manger_log 日志存放位置
--ignore_last_failover 在缺省情况下,如果MHA检测到连续发生宕机,且两次宕机间隔不足8小时的话,则不会进行Failover,之所以这样限制是为了避免ping-pong效应。该参数代表忽略上次MHA触发切换产生的文件,默认情况下,MHA发生切换后会在日志目录下产生mha.failover.complete文件,下次再次切换的时候如果发现该目录下存在该文件将不允许触发切换,除非在第一次切换后收到删除该文件,为了方便,这里设置为--ignore_last_failover。
注意,一旦自动failover发生,mha manager就停止监控了,如果需要请手动再次开启。
3.1.5 关闭MHA-manager
1 | masterha_stop --conf=/etc/mha/mha.cnf |
我们当然不关闭,不能执行这句哟。
3.2 测试场景一:自动故障转移+邮件告警
自动故障转移后的架构如下图所示: