Check the master-slave replication status.
本文是以MySQL5.5为基础的,因此没有涉及到gtid相关内容。MHA的主从切换过程分为failover和rotate两种,前者适用于原Master down的情况,后者是在在线切换的情况下使用。下面分别讲解
Repair the salve replication on zlm3.
1 (zlm@192.168.1.101 3306)[(none)]>show master status;
2 +------------------+----------+--------------+------------------+------------------------------------------------+
3 | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
4 +------------------+----------+--------------+------------------+------------------------------------------------+
5 | mysql-bin.000051 | 190 | | | 1b7181ee-6eaf-11e8-998e-080027de0e0e:1-3730259 |
6 +------------------+----------+--------------+------------------+------------------------------------------------+
7 1 row in set (0.00 sec)
8
9 (zlm@192.168.1.101 3306)[(none)]>show slave statusG
10 Empty set (0.00 sec)
MHA::MasterRotate::main()
-> do_master_online_switch:
Phase 1: Configuration Check Phase
-> identify_orig_master
connect_all_and_read_server_status:
connect_check:首先进行connect
check,确保各个server的MySQL服务都正常
connect_and_get_status:获取MySQL实例的server_id/mysql_version/log_bin..等信息
这一步还有一个重要的作用,是获取当前的master节点。通过执行show slave
status,
如果输出为空,说明当前节点是master节点。
validate_current_master:取得master节点的信息,并判断配置的正确性
check是否有server down,若有则退出rotate
check master alive or not,若dead则退出rotate
check_repl_priv:
查看用户是否有replication的权限
获取monitor_advisory_lock,以保证当前没有其他的monitor进程在master上运行
执行:SELECT GET_LOCK('MHA_Master_High_Availability_Monitor',
?) AS Value
获取failover_advisory_lock,以保证当前没有其他的failover进程在slave上运行
执行:SELECT GET_LOCK('MHA_Master_High_Availability_Failover',
?) AS Value
check_replication_health:
执行:SHOW SLAVE
STATUS来判断如下状态:current_slave_position/has_replication_problem
其中,has_replication_problem具体check如下内容:IO线程/SQL线程/Seconds_Behind_Master(1s)
get_running_update_threads:
使用show
processlist来查询当前有没有执行update的线程存在,若有则退出switch
-> identify_new_master
set_latest_slaves:当前的slave节点都是latest slave
select_new_master:选出新的master节点
If preferred node is specified, one of active preferred nodes will
be new master.
If the latest server behinds too much (i.e. stopping sql thread for
online backups),
we should not use it as a new master, we should fetch relay log
there. Even though preferred
master is configured, it does not become a master if it's far
behind.
get_candidate_masters:
就是配置文件中配置了candidate_master>0的节点
get_bad_candidate_masters:
# The following servers can not be master:
# - dead servers
# - Set no_master in conf files (i.e. DR servers)
# - log_bin is disabled
# - Major version is not the oldest
# - too much replication delay(slave与master的binlog
position差距大于100000000)
Searching from candidate_master slaves which have received the
latest relay log events
if NOT FOUND:
Searching from all candidate_master slaves
if NOT FOUND:
Searching from all slaves which have received the latest relay log
events
if NOT FOUND:
Searching from all slaves
Phase 2: Rejecting updates Phase
reject_update:lock table来reject write binlog
如果MHA的配置文件中设置了"master_ip_online_change_script"参数,则执行该脚本来disable
writes on the current master
该脚本在使用了vip的时候才需要设置
reconnect:确保当前与master的连接正常
lock_all_tables:执行FLUSH TABLES WITH READ LOCK,来lock table
check_binlog_stop:连续两次show master
status,来判断写binlog是否已经停止
read_slave_status:
get_alive_slaves:
check_slave_status:调用"SHOW SLAVE
STATUS"来取得slave的如下信息:
Slave_IO_State, Master_Host,
Master_Port, Master_User,
Slave_IO_Running, Slave_SQL_Running,
Master_Log_File, Read_Master_Log_Pos,
Relay_Master_Log_File, Last_Errno,
Last_Error, Exec_Master_Log_Pos,
Relay_Log_File, Relay_Log_Pos,
Seconds_Behind_Master, Retrieved_Gtid_Set,
Executed_Gtid_Set, Auto_Position
Replicate_Do_DB, Replicate_Ignore_DB, Replicate_Do_Table,
Replicate_Ignore_Table, Replicate_Wild_Do_Table,
Replicate_Wild_Ignore_Table
switch_master:
switch_master_internal:
master_pos_wait:调用select
master_pos_wait函数,等待主从同步完成
get_new_master_binlog_position:执行'show master status'
Allow write access on the new master:
调用master_ip_online_change_script --command=start
...,将vip指向new master
disable_read_only:
在新master上执行:SET GLOBAL read_only=0
switch_slaves:
switch_slaves_internal:
change_master_and_start_slave
change_master:
start_slave:
unlock_tables:在orig master上执行unlock table
Phase 5: New master cleanup phase
reset_slave_on_new_master
release_failover_advisory_lock
http://www.bkjia.com/Javabc/1119671.htmlwww.bkjia.comtruehttp://www.bkjia.com/Javabc/1119671.htmlTechArticleMHA故障切换和在线切换的代码解析 前段时间我的同事沈龙星整理了一下MHA故障切换和在线切换的代码流程,在征得其同意后,在此转发。以...
Test 2:Manual master failover
Check the file and log on MasterHA.
1 [root@zlm2 10:15:56 ~]
2 #cd /var/log/masterha/app1
3
4 [root@zlm2 10:20:04 /var/log/masterha/app1]
5 #ls -l
6 total 4
7 -rw-r--r-- 1 root root 0 Aug 3 10:15 app1.failover.complete
8 -rw-r--r-- 1 root root 3883 Aug 2 11:29 app1.log
9
10 //The option of "--ignore_last_failover" can neglect the influence of existence of "app1.failover.complete".Otherwise,the failover operation will be terminated by error.
11 //This file will be created after a failover operation and it will be created only on the original slave who wants to become a new master.
12
13 [root@zlm2 10:20:05 /var/log/masterha/app1]
14 #cat app1.log
15 Thu Aug 2 11:12:03 2018 - [info] MHA::MasterMonitor version 0.56.
16 Thu Aug 2 11:12:04 2018 - [error][/usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln301] Got MySQL error when connecting 192.168.1.101(192.168.1.101:3306) :1045:Access denied for user 'root'@'zlm2' (using password: NO), but this is not a MySQL crash. Check MySQL server settings.
17 at /usr/share/perl5/vendor_perl/MHA/ServerManager.pm line 297.
18 Thu Aug 2 11:12:04 2018 - [error][/usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln301] Got MySQL error when connecting 192.168.1.102(192.168.1.102:3306) :1045:Access denied for user 'root'@'zlm2' (using password: NO), but this is not a MySQL crash. Check MySQL server settings.
19 at /usr/share/perl5/vendor_perl/MHA/ServerManager.pm line 297.
20 Thu Aug 2 11:12:05 2018 - [error][/usr/share/perl5/vendor_perl/MHA/ServerManager.pm, ln309] Got fatal error, stopping operations
21 Thu Aug 2 11:12:05 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations. at /usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm line 326.
22 Thu Aug 2 11:12:05 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln523] Error happened on monitoring servers.
23 Thu Aug 2 11:12:05 2018 - [info] Got exit code 1 (Not master dead).
24 Thu Aug 2 11:13:56 2018 - [info] MHA::MasterMonitor version 0.56.
25 Thu Aug 2 11:13:57 2018 - [info] GTID failover mode = 1
26 Thu Aug 2 11:13:57 2018 - [info] Dead Servers:
27 Thu Aug 2 11:13:57 2018 - [info] Alive Servers:
28 Thu Aug 2 11:13:57 2018 - [info] 192.168.1.101(192.168.1.101:3306)
29 Thu Aug 2 11:13:57 2018 - [info] 192.168.1.102(192.168.1.102:3306)
30 Thu Aug 2 11:13:57 2018 - [info] Alive Slaves:
31 Thu Aug 2 11:13:57 2018 - [info] 192.168.1.102(192.168.1.102:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
32 Thu Aug 2 11:13:57 2018 - [info] GTID ON
33 Thu Aug 2 11:13:57 2018 - [info] Replicating from 192.168.1.101(192.168.1.101:3306)
34 Thu Aug 2 11:13:57 2018 - [info] Primary candidate for the new Master (candidate_master is set)
35 Thu Aug 2 11:13:57 2018 - [info] Current Alive Master: 192.168.1.101(192.168.1.101:3306)
36 Thu Aug 2 11:13:57 2018 - [info] Checking slave configurations..
37 Thu Aug 2 11:13:57 2018 - [info] read_only=1 is not set on slave 192.168.1.102(192.168.1.102:3306).
38 Thu Aug 2 11:13:57 2018 - [info] Checking replication filtering settings..
39 Thu Aug 2 11:13:57 2018 - [info] binlog_do_db= , binlog_ignore_db=
40 Thu Aug 2 11:13:57 2018 - [info] Replication filtering check ok.
41 Thu Aug 2 11:13:57 2018 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking.
42 Thu Aug 2 11:13:57 2018 - [info] Checking SSH publickey authentication settings on the current master..
43 Thu Aug 2 11:13:57 2018 - [warning] HealthCheck: SSH to 192.168.1.101 is NOT reachable.
44 Thu Aug 2 11:13:57 2018 - [info]
45 192.168.1.101(192.168.1.101:3306) (current master)
46 +--192.168.1.102(192.168.1.102:3306)
47
48 Thu Aug 2 11:13:57 2018 - [info] Checking master_ip_failover_script status:
49 Thu Aug 2 11:13:57 2018 - [info] /etc/masterha/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.1.101 --orig_master_ip=192.168.1.101 --orig_master_port=3306 --orig_master_ssh_port=3306
50 Thu Aug 2 11:13:57 2018 - [info] OK.
51 Thu Aug 2 11:13:57 2018 - [warning] shutdown_script is not defined.
52 Thu Aug 2 11:13:57 2018 - [info] Set master ping interval 1 seconds.
53 Thu Aug 2 11:13:57 2018 - [warning] secondary_check_script is not defined. It is highly recommended setting it to check master reachability from two or more routes.
54 Thu Aug 2 11:13:57 2018 - [info] Starting ping health check on 192.168.1.101(192.168.1.101:3306)..
55 Thu Aug 2 11:13:57 2018 - [info] Ping(SELECT) succeeded, waiting until MySQL doesn't respond..
56 Thu Aug 2 11:29:51 2018 - [info] Got terminate signal. Exit.
1 [root@zlm3 10:48:00 /var/log/masterha/app1]
2 #nohup masterha_manager --conf=/etc/masterha/app1.conf --global_conf=/etc/masterha/masterha_default.conf &
3 [1] 9265
4 nohup: ignoring input and appending output to ‘nohup.out’
5
6 [root@zlm3 10:48:12 /var/log/masterha/app1]
7 #ls -l
8 total 24
9 -rw-r--r-- 1 root root 16370 Aug 3 10:48 app1.log
10 -rw-r--r-- 1 root root 35 Aug 3 10:48 app1.master_status.health //This file is created only when MasterHA-manager is running.It will continuously record the health status between slave and master.
11 -rw------- 1 root root 371 Aug 3 10:48 nohup.out
12
13 [root@zlm3 10:48:14 /var/log/masterha/app1]
14 #cat nohup.out
15 Fri Aug 3 10:48:12 2018 - [info] Reading default configuration from /etc/masterha/masterha_default.conf..
16 Fri Aug 3 10:48:12 2018 - [info] Reading application default configuration from /etc/masterha/app1.conf..
17 Fri Aug 3 10:48:12 2018 - [info] Reading server configuration from /etc/masterha/app1.conf..
18 ssh_exchange_identification: Connection closed by remote host
19
20 [root@zlm3 10:48:26 /var/log/masterha/app1]
21 #cat app1.master_status.health
22 9265 0:PING_OK master:192.168.1.101
23 [root@zlm3 10:48:31 /var/log/masterha/app1]
24 #ps aux|grep manager
25 root 9265 0.6 2.1 299172 21516 pts/1 S 10:48 0:00 perl /usr/bin/masterha_manager --conf=/etc/masterha/app1.conf --global_conf=/etc/masterha/masterha_default.conf
26 root 9332 0.0 0.0 112640 960 pts/1 R+ 10:48 0:00 grep --color=auto manager
1 [root@zlm3 07:35:00 ~]
2 #masterha_check_ssh --conf=/etc/masterha/app1.conf
3 Fri Aug 3 07:37:13 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
4 Fri Aug 3 07:37:13 2018 - [info] Reading application default configuration from /etc/masterha/app1.conf..
5 Fri Aug 3 07:37:13 2018 - [info] Reading server configuration from /etc/masterha/app1.conf..
6 Fri Aug 3 07:37:13 2018 - [info] Starting SSH connection tests..
7 Fri Aug 3 07:37:13 2018 - [debug]
8 Fri Aug 3 07:37:13 2018 - [debug] Connecting via SSH from root@192.168.1.101(192.168.1.101:22) to root@192.168.1.102(192.168.1.102:22)..
9 Fri Aug 3 07:37:13 2018 - [debug] ok.
10 Fri Aug 3 07:37:14 2018 - [debug]
11 Fri Aug 3 07:37:13 2018 - [debug] Connecting via SSH from root@192.168.1.102(192.168.1.102:22) to root@192.168.1.101(192.168.1.101:22)..
12 Fri Aug 3 07:37:13 2018 - [debug] ok.
13 Fri Aug 3 07:37:14 2018 - [info] All SSH connection tests passed successfully.
14
15 [root@zlm3 07:37:14 ~]
16 #masterha_check_repl --conf=/etc/masterha/app1.conf --global_conf=/etc/masterha/masterha_default.conf
17 Fri Aug 3 07:37:37 2018 - [info] Reading default configuration from /etc/masterha/masterha_default.conf..
18 Fri Aug 3 07:37:37 2018 - [info] Reading application default configuration from /etc/masterha/app1.conf..
19 Fri Aug 3 07:37:37 2018 - [info] Reading server configuration from /etc/masterha/app1.conf..
20 Fri Aug 3 07:37:37 2018 - [info] MHA::MasterMonitor version 0.56.
21 Fri Aug 3 07:37:38 2018 - [info] GTID failover mode = 1
22 Fri Aug 3 07:37:38 2018 - [info] Dead Servers:
23 Fri Aug 3 07:37:38 2018 - [info] Alive Servers:
24 Fri Aug 3 07:37:38 2018 - [info] 192.168.1.101(192.168.1.101:3306)
25 Fri Aug 3 07:37:38 2018 - [info] 192.168.1.102(192.168.1.102:3306)
26 Fri Aug 3 07:37:38 2018 - [info] Alive Slaves:
27 Fri Aug 3 07:37:38 2018 - [info] 192.168.1.102(192.168.1.102:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
28 Fri Aug 3 07:37:38 2018 - [info] GTID ON
29 Fri Aug 3 07:37:38 2018 - [info] Replicating from 192.168.1.101(192.168.1.101:3306)
30 Fri Aug 3 07:37:38 2018 - [info] Primary candidate for the new Master (candidate_master is set)
31 Fri Aug 3 07:37:38 2018 - [info] Current Alive Master: 192.168.1.101(192.168.1.101:3306)
32 Fri Aug 3 07:37:38 2018 - [info] Checking slave configurations..
33 Fri Aug 3 07:37:38 2018 - [info] read_only=1 is not set on slave 192.168.1.102(192.168.1.102:3306).
34 Fri Aug 3 07:37:38 2018 - [info] Checking replication filtering settings..
35 Fri Aug 3 07:37:38 2018 - [info] binlog_do_db= , binlog_ignore_db=
36 Fri Aug 3 07:37:38 2018 - [info] Replication filtering check ok.
37 Fri Aug 3 07:37:38 2018 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking.
38 Fri Aug 3 07:37:38 2018 - [info] Checking SSH publickey authentication settings on the current master..
39 ssh_exchange_identification: Connection closed by remote host
40 Fri Aug 3 07:37:38 2018 - [warning] HealthCheck: SSH to 192.168.1.101 is NOT reachable.
41 Fri Aug 3 07:37:38 2018 - [info]
42 192.168.1.101(192.168.1.101:3306) (current master)
43 +--192.168.1.102(192.168.1.102:3306)
44
45 Fri Aug 3 07:37:38 2018 - [info] Checking replication health on 192.168.1.102..
46 Fri Aug 3 07:37:38 2018 - [info] ok.
47 Fri Aug 3 07:37:38 2018 - [info] Checking master_ip_failover_script status:
48 Fri Aug 3 07:37:38 2018 - [info] /etc/masterha/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.1.101 --orig_master_ip=192.168.1.101 --orig_master_port=3306 --orig_master_ssh_port=3306
49 Fri Aug 3 07:37:38 2018 - [info] OK.
50 Fri Aug 3 07:37:38 2018 - [warning] shutdown_script is not defined.
51 Fri Aug 3 07:37:38 2018 - [info] Got exit code 0 (Not master dead).
52
53 MySQL Replication Health is OK.
54
55 [root@zlm3 07:40:03 ~]
56 #Fri Aug 3 07:40:03 2018 - [info] Reading default configuration from /etc/masterha/masterha_default.conf..
57 Fri Aug 3 07:40:03 2018 - [info] Reading application default configuration from /etc/masterha/app1.conf..
58 Fri Aug 3 07:40:03 2018 - [info] Reading server configuration from /etc/masterha/app1.conf..
59 ssh_exchange_identification: Connection closed by remote host
60 ^C
61
62 [root@zlm3 07:40:11 ~]
63 #masterha_check_status --conf=/etc/masterha/app1.conf
64 app1 (pid:5628) is running(0:PING_OK), master:192.168.1.101
1 [root@zlm3 08:28:35 ~]
2 #cd /var/log/masterha/app1
3
4 [root@zlm3 08:29:12 /var/log/masterha/app1]
5 #cat app1.log
6 Fri Aug 3 07:39:13 2018 - [info] MHA::MasterMonitor version 0.56.
7 Fri Aug 3 07:39:14 2018 - [info] GTID failover mode = 1
8 Fri Aug 3 07:39:14 2018 - [info] Dead Servers:
9 Fri Aug 3 07:39:14 2018 - [info] Alive Servers:
10 Fri Aug 3 07:39:14 2018 - [info] 192.168.1.101(192.168.1.101:3306)
11 Fri Aug 3 07:39:14 2018 - [info] 192.168.1.102(192.168.1.102:3306)
12 Fri Aug 3 07:39:14 2018 - [info] Alive Slaves:
13 Fri Aug 3 07:39:14 2018 - [info] 192.168.1.102(192.168.1.102:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
14 Fri Aug 3 07:39:14 2018 - [info] GTID ON
15 Fri Aug 3 07:39:14 2018 - [info] Replicating from 192.168.1.101(192.168.1.101:3306)
16 Fri Aug 3 07:39:14 2018 - [info] Primary candidate for the new Master (candidate_master is set)
17 Fri Aug 3 07:39:14 2018 - [info] Current Alive Master: 192.168.1.101(192.168.1.101:3306)
18 Fri Aug 3 07:39:14 2018 - [info] Checking slave configurations..
19 Fri Aug 3 07:39:14 2018 - [info] read_only=1 is not set on slave 192.168.1.102(192.168.1.102:3306).
20 Fri Aug 3 07:39:14 2018 - [info] Checking replication filtering settings..
21 Fri Aug 3 07:39:14 2018 - [info] binlog_do_db= , binlog_ignore_db=
22 Fri Aug 3 07:39:14 2018 - [info] Replication filtering check ok.
23 Fri Aug 3 07:39:14 2018 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking.
24 Fri Aug 3 07:39:14 2018 - [info] Checking SSH publickey authentication settings on the current master..
25 Fri Aug 3 07:39:14 2018 - [warning] HealthCheck: SSH to 192.168.1.101 is NOT reachable.
26 Fri Aug 3 07:39:14 2018 - [info]
27 192.168.1.101(192.168.1.101:3306) (current master)
28 +--192.168.1.102(192.168.1.102:3306)
29
30 Fri Aug 3 07:39:14 2018 - [info] Checking master_ip_failover_script status:
31 Fri Aug 3 07:39:14 2018 - [info] /etc/masterha/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.1.101 --orig_master_ip=192.168.1.101 --orig_master_port=3306 --orig_master_ssh_port=3306
32 Fri Aug 3 07:39:14 2018 - [info] OK.
33 Fri Aug 3 07:39:14 2018 - [warning] shutdown_script is not defined.
34 Fri Aug 3 07:39:14 2018 - [info] Set master ping interval 1 seconds.
35 Fri Aug 3 07:39:14 2018 - [warning] secondary_check_script is not defined. It is highly recommended setting it to check master reachability from two or more routes.
36 Fri Aug 3 07:39:14 2018 - [info] Starting ping health check on 192.168.1.101(192.168.1.101:3306)..
37 Fri Aug 3 07:39:14 2018 - [info] Ping(SELECT) succeeded, waiting until MySQL doesn't respond..
38 Fri Aug 3 07:39:27 2018 - [info] Got terminate signal. Exit.
39 Fri Aug 3 07:40:03 2018 - [info] MHA::MasterMonitor version 0.56.
40 Fri Aug 3 07:40:04 2018 - [info] GTID failover mode = 1
41 Fri Aug 3 07:40:04 2018 - [info] Dead Servers:
42 Fri Aug 3 07:40:04 2018 - [info] Alive Servers:
43 Fri Aug 3 07:40:04 2018 - [info] 192.168.1.101(192.168.1.101:3306)
44 Fri Aug 3 07:40:04 2018 - [info] 192.168.1.102(192.168.1.102:3306)
45 Fri Aug 3 07:40:04 2018 - [info] Alive Slaves:
46 Fri Aug 3 07:40:04 2018 - [info] 192.168.1.102(192.168.1.102:3306) Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
47 Fri Aug 3 07:40:04 2018 - [info] GTID ON
48 Fri Aug 3 07:40:04 2018 - [info] Replicating from 192.168.1.101(192.168.1.101:3306)
49 Fri Aug 3 07:40:04 2018 - [info] Primary candidate for the new Master (candidate_master is set)
50 Fri Aug 3 07:40:04 2018 - [info] Current Alive Master: 192.168.1.101(192.168.1.101:3306)
51 Fri Aug 3 07:40:04 2018 - [info] Checking slave configurations..
52 Fri Aug 3 07:40:04 2018 - [info] read_only=1 is not set on slave 192.168.1.102(192.168.1.102:3306).
53 Fri Aug 3 07:40:04 2018 - [info] Checking replication filtering settings..
54 Fri Aug 3 07:40:04 2018 - [info] binlog_do_db= , binlog_ignore_db=
55 Fri Aug 3 07:40:04 2018 - [info] Replication filtering check ok.
56 Fri Aug 3 07:40:04 2018 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking.
57 Fri Aug 3 07:40:04 2018 - [info] Checking SSH publickey authentication settings on the current master..
58 Fri Aug 3 07:40:04 2018 - [warning] HealthCheck: SSH to 192.168.1.101 is NOT reachable.
59 Fri Aug 3 07:40:04 2018 - [info]
60 192.168.1.101(192.168.1.101:3306) (current master)
61 +--192.168.1.102(192.168.1.102:3306)
62
63 Fri Aug 3 07:40:04 2018 - [info] Checking master_ip_failover_script status:
64 Fri Aug 3 07:40:04 2018 - [info] /etc/masterha/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.1.101 --orig_master_ip=192.168.1.101 --orig_master_port=3306 --orig_master_ssh_port=3306
65 Fri Aug 3 07:40:04 2018 - [info] OK.
66 Fri Aug 3 07:40:04 2018 - [warning] shutdown_script is not defined.
67 Fri Aug 3 07:40:04 2018 - [info] Set master ping interval 1 seconds.
68 Fri Aug 3 07:40:04 2018 - [warning] secondary_check_script is not defined. It is highly recommended setting it to check master reachability from two or more routes.
69 Fri Aug 3 07:40:04 2018 - [info] Starting ping health check on 192.168.1.101(192.168.1.101:3306)..
70 Fri Aug 3 07:40:04 2018 - [info] Ping(SELECT) succeeded, waiting until MySQL doesn't respond..
71 Fri Aug 3 08:28:07 2018 - [info] Got terminate signal. Exit.
Check the log of MasterHA on zlm3.
1 //New master(original slave)
2 (zlm@192.168.1.102 3306)[(none)]>show master status;
3 +------------------+----------+--------------+------------------+------------------------------------------------+
4 | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
5 +------------------+----------+--------------+------------------+------------------------------------------------+
6 | mysql-bin.000003 | 2321 | | | 1b7181ee-6eaf-11e8-998e-080027de0e0e:1-3730259 |
7 +------------------+----------+--------------+------------------+------------------------------------------------+
8 1 row in set (0.00 sec)
9
10 (zlm@192.168.1.102 3306)[(none)]>show slave statusG
11 Empty set (0.00 sec)
12
13 //New slave(original master)
14 (zlm@192.168.1.101 3306)[(none)]>show master status;
15 +------------------+----------+--------------+------------------+------------------------------------------------+
16 | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
17 +------------------+----------+--------------+------------------+------------------------------------------------+
18 | mysql-bin.000050 | 2361 | | | 1b7181ee-6eaf-11e8-998e-080027de0e0e:1-3730259 |
19 +------------------+----------+--------------+------------------+------------------------------------------------+
20 1 row in set (0.01 sec)
21
22 (zlm@192.168.1.101 3306)[(none)]>show slave statusG
23 *************************** 1. row ***************************
24 Slave_IO_State: Waiting for master to send event
25 Master_Host: 192.168.1.102
26 Master_User: repl
27 Master_Port: 3306
28 Connect_Retry: 60
29 Master_Log_File: mysql-bin.000003
30 Read_Master_Log_Pos: 2321
31 Relay_Log_File: relay-bin.000002
32 Relay_Log_Pos: 398
33 Relay_Master_Log_File: mysql-bin.000003
34 Slave_IO_Running: Yes
35 Slave_SQL_Running: Yes
36 Replicate_Do_DB:
37 Replicate_Ignore_DB:
38 Replicate_Do_Table:
39 Replicate_Ignore_Table:
40 Replicate_Wild_Do_Table:
41 Replicate_Wild_Ignore_Table:
42 Last_Errno: 0
43 Last_Error:
44 Skip_Counter: 0
45 Exec_Master_Log_Pos: 2321
46 Relay_Log_Space: 591
47 Until_Condition: None
48 Until_Log_File:
49 Until_Log_Pos: 0
50 Master_SSL_Allowed: No
51 Master_SSL_CA_File:
52 Master_SSL_CA_Path:
53 Master_SSL_Cert:
54 Master_SSL_Cipher:
55 Master_SSL_Key:
56 Seconds_Behind_Master: 0
57 Master_SSL_Verify_Server_Cert: No
58 Last_IO_Errno: 0
59 Last_IO_Error:
60 Last_SQL_Errno: 0
61 Last_SQL_Error:
62 Replicate_Ignore_Server_Ids:
63 Master_Server_Id: 1023306
64 Master_UUID: 842ea497-9551-11e8-83ca-080027de0e0e
65 Master_Info_File: mysql.slave_master_info
66 SQL_Delay: 0
67 SQL_Remaining_Delay: NULL
68 Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
69 Master_Retry_Count: 86400
70 Master_Bind:
71 Last_IO_Error_Timestamp:
72 Last_SQL_Error_Timestamp:
73 Master_SSL_Crl:
74 Master_SSL_Crlpath:
75 Retrieved_Gtid_Set:
76 Executed_Gtid_Set: 1b7181ee-6eaf-11e8-998e-080027de0e0e:1-3730259
77 Auto_Position: 1
78 Replicate_Rewrite_DB:
79 Channel_Name:
80 Master_TLS_Version:
81 1 row in set (0.00 sec)
Preface
Hostname | IP | Port | Identity | OS Version | MySQL Version |
zlm2 | 192.168.1.101 | 3306 | master | CentOS 7.0 | 5.7.21 |
zlm3 | 192.168.1.102 | 3306 | slave/mha-manager | CentOS 7.0 | 5.7.21 |
null | 192.168.1.200 | null | vip | null | null |
Kill mysqld on zlm2 to pretend the master is dead.
本文由美高梅官方网站发布于数据统计,转载请注明出处:美高梅正规网址MHA故障切换和在线切换的代码解