MySQL之MHA+keepalived方案演示(三)

一、MHA之SSH免密码登录测试

1.1配置SSH登录无密码验证

上述博文已经提到过,此处再次粘贴出来,防止遗忘此步骤
在server02 192.168.2.128操作(Master):

192.168.2.128 [root ~]$ ssh-keygen -t rsa
192.168.2.128 [root ~]$ ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
192.168.2.128 [root ~]$ ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

每个机器以此类推循环操作免密码

1.2. 测试SSH免密码登录

检查SSH配置(server04 192.168.2.130 Monitor 监控节点上操作),如下:

[[email protected] ~]# masterha_check_ssh --conf=/etc/masterha/app1.cnf
Sun Jul  1 12:25:54 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Sun Jul  1 12:25:54 2018 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:25:54 2018 - [info] Reading server configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:25:54 2018 - [info] Starting SSH connection tests..
Sun Jul  1 12:26:01 2018 - [debug]
Sun Jul  1 12:25:54 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.128:22) to [email protected](192.168.2.129:22)..
Sun Jul  1 12:25:56 2018 - [debug]   ok.
Sun Jul  1 12:25:56 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.128:22) to [email protected](192.168.2.130:22)..
Sun Jul  1 12:26:01 2018 - [debug]   ok.
Sun Jul  1 12:26:01 2018 - [debug]
Sun Jul  1 12:25:55 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.129:22) to [email protected](192.168.2.128:22)..
Sun Jul  1 12:25:56 2018 - [debug]   ok.
Sun Jul  1 12:25:56 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.129:22) to [email protected](192.168.2.130:22)..
Sun Jul  1 12:26:01 2018 - [debug]   ok.
Sun Jul  1 12:26:03 2018 - [debug]
Sun Jul  1 12:25:56 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.130:22) to [email protected](192.168.2.128:22)..
Warning: Permanently added ‘192.168.2.130‘ (RSA) to the list of known hosts.
Sun Jul  1 12:26:01 2018 - [debug]   ok.
Sun Jul  1 12:26:01 2018 - [debug]  Connecting via SSH from [email protected](192.168.2.130:22) to [email protected](192.168.2.129:22)..
Sun Jul  1 12:26:03 2018 - [debug]   ok.
Sun Jul  1 12:26:03 2018 - [info] All SSH connection tests passed successfully.
[[email protected] ~]# 

ssh免密码配置是成功的

二、测试MHA数据库同步

[[email protected] ~]# masterha_check_repl --conf=/etc/masterha/app1.cnf

Sun Jul  1 12:29:31 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Sun Jul  1 12:29:31 2018 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:29:31 2018 - [info] Reading server configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:29:31 2018 - [info] MHA::MasterMonitor version 0.56.
Sun Jul  1 12:29:31 2018 - [info] GTID failover mode = 0
Sun Jul  1 12:29:31 2018 - [info] Dead Servers:
Sun Jul  1 12:29:31 2018 - [info] Alive Servers:
Sun Jul  1 12:29:31 2018 - [info]   192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:29:31 2018 - [info]   192.168.2.129(192.168.2.129:3306)
Sun Jul  1 12:29:31 2018 - [info]   192.168.2.130(192.168.2.130:3306)
Sun Jul  1 12:29:31 2018 - [info] Alive Slaves:
Sun Jul  1 12:29:31 2018 - [info]   192.168.2.129(192.168.2.129:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 12:29:31 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:29:31 2018 - [info]     Primary candidate for the new Master (candidate_master is set)
Sun Jul  1 12:29:31 2018 - [info]   192.168.2.130(192.168.2.130:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 12:29:31 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:29:31 2018 - [info] Current Alive Master: 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:29:31 2018 - [info] Checking slave configurations..
Sun Jul  1 12:29:31 2018 - [info]  read_only=1 is not set on slave 192.168.2.129(192.168.2.129:3306).
Sun Jul  1 12:29:31 2018 - [info] Checking replication filtering settings..
Sun Jul  1 12:29:31 2018 - [info]  binlog_do_db= , binlog_ignore_db=
Sun Jul  1 12:29:31 2018 - [info]  Replication filtering check ok.
Sun Jul  1 12:29:31 2018 - [info] GTID (with auto-pos) is not supported
Sun Jul  1 12:29:31 2018 - [info] Starting SSH connection tests..
Sun Jul  1 12:29:33 2018 - [info] All SSH connection tests passed successfully.
Sun Jul  1 12:29:33 2018 - [info] Checking MHA Node version..
Sun Jul  1 12:29:33 2018 - [info]  Version check ok.
Sun Jul  1 12:29:33 2018 - [info] Checking SSH publickey authentication settings on the current master..
Sun Jul  1 12:29:33 2018 - [info] HealthCheck: SSH to 192.168.2.128 is reachable.
Sun Jul  1 12:29:34 2018 - [info] Master MHA Node version is 0.56.
Sun Jul  1 12:29:34 2018 - [info] Checking recovery script configurations on 192.168.2.128(192.168.2.128:3306)..
Sun Jul  1 12:29:34 2018 - [info]   Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/data/mysql/logs/bin-log --output_file=/tmp/save_binary_logs_test --

manager_version=0.56 --start_file=mysql-bin.000004
Sun Jul  1 12:29:34 2018 - [info]   Connecting to [email protected](192.168.2.128:22)..
  Creating /tmp if not exists..    ok.
  Checking output directory is accessible or not..
   ok.
  Binlog found at /data/mysql/logs/bin-log, up to mysql-bin.000004
Sun Jul  1 12:29:34 2018 - [info] Binlog setting check done.
Sun Jul  1 12:29:34 2018 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Sun Jul  1 12:29:34 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.129 --slave_ip=192.168.2.129 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 12:29:34 2018 - [info]   Connecting to [email protected](192.168.2.129:22)..
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 12:29:35 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.130 --slave_ip=192.168.2.130 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 12:29:35 2018 - [info]   Connecting to [email protected](192.168.2.130:22)..
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 12:29:35 2018 - [info] Slaves settings check done.
Sun Jul  1 12:29:35 2018 - [info]
192.168.2.128(192.168.2.128:3306) (current master)
 +--192.168.2.129(192.168.2.129:3306)
 +--192.168.2.130(192.168.2.130:3306)

Sun Jul  1 12:29:35 2018 - [info] Checking replication health on 192.168.2.129..
Sun Jul  1 12:29:35 2018 - [info]  ok.
Sun Jul  1 12:29:35 2018 - [info] Checking replication health on 192.168.2.130..
Sun Jul  1 12:29:35 2018 - [info]  ok.
Sun Jul  1 12:29:35 2018 - [info] Checking master_ip_failover_script status:
Sun Jul  1 12:29:35 2018 - [info]   /usr/local/bin/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.2.128 --orig_master_ip=192.168.2.128 --orig_master_port=3306
Sun Jul  1 12:29:35 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations. Can‘t exec "/usr/local/bin/master_ip_failover": Permission 

denied at /usr/share/perl5/vendor_perl/MHA/ManagerUtil.pm line 68.
Sun Jul  1 12:29:35 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln523] Error happened on monitoring servers.
Sun Jul  1 12:29:35 2018 - [info] Got exit code 1 (Not master dead).

MySQL Replication Health is NOT OK!
Sun Jul  1 12:29:35 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln226]  Failed to get master_ip_failover_script status with return code 1:0.
Sun Jul  1 12:29:35 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln424] Error happened on checking configurations.  at /usr/local/bin/masterha_check_repl line 48
Sun Jul  1 12:29:35 2018 - [error][/usr/share/perl5/vendor_perl/MHA/MasterMonitor.pm, ln523] Error happened on monitoring servers.
Sun Jul  1 12:29:35 2018 - [info] Got exit code 1 (Not master dead).

MySQL Replication Health is NOT OK!

检查报错,提示jjiaoben没有权限
给脚本执行权限

[[email protected] ~]# chmod +x /usr/local/bin/masterha_check_repl
[[email protected] ~]# ll /usr/local/bin/master_ip_failover
-rw-r--r-- 1 root root 2173 Jun 30 17:29 /usr/local/bin/master_ip_failover
[[email protected] ~]# chmod +x /usr/local/bin/master_ip_failover

再次检测成功

[[email protected] bin]# masterha_check_repl --conf=/etc/masterha/app1.cnf
Sun Jul  1 15:08:21 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Sun Jul  1 15:08:21 2018 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
Sun Jul  1 15:08:21 2018 - [info] Reading server configuration from /etc/masterha/app1.cnf..
Sun Jul  1 15:08:21 2018 - [info] MHA::MasterMonitor version 0.56.
Sun Jul  1 15:08:21 2018 - [info] GTID failover mode = 0
Sun Jul  1 15:08:21 2018 - [info] Dead Servers:
Sun Jul  1 15:08:21 2018 - [info] Alive Servers:
Sun Jul  1 15:08:21 2018 - [info]   192.168.2.128(192.168.2.128:3306)
Sun Jul  1 15:08:21 2018 - [info]   192.168.2.129(192.168.2.129:3306)
Sun Jul  1 15:08:21 2018 - [info]   192.168.2.130(192.168.2.130:3306)
Sun Jul  1 15:08:21 2018 - [info] Alive Slaves:
Sun Jul  1 15:08:21 2018 - [info]   192.168.2.129(192.168.2.129:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 15:08:21 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 15:08:21 2018 - [info]     Primary candidate for the new Master (candidate_master is set)
Sun Jul  1 15:08:21 2018 - [info]   192.168.2.130(192.168.2.130:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 15:08:21 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 15:08:21 2018 - [info] Current Alive Master: 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 15:08:21 2018 - [info] Checking slave configurations..
Sun Jul  1 15:08:21 2018 - [info]  read_only=1 is not set on slave 192.168.2.129(192.168.2.129:3306).
Sun Jul  1 15:08:21 2018 - [info] Checking replication filtering settings..
Sun Jul  1 15:08:21 2018 - [info]  binlog_do_db= , binlog_ignore_db=
Sun Jul  1 15:08:21 2018 - [info]  Replication filtering check ok.
Sun Jul  1 15:08:21 2018 - [info] GTID (with auto-pos) is not supported
Sun Jul  1 15:08:21 2018 - [info] Starting SSH connection tests..
Sun Jul  1 15:08:23 2018 - [info] All SSH connection tests passed successfully.
Sun Jul  1 15:08:23 2018 - [info] Checking MHA Node version..
Sun Jul  1 15:08:23 2018 - [info]  Version check ok.
Sun Jul  1 15:08:23 2018 - [info] Checking SSH publickey authentication settings on the current master..
Sun Jul  1 15:08:23 2018 - [info] HealthCheck: SSH to 192.168.2.128 is reachable.
Sun Jul  1 15:08:23 2018 - [info] Master MHA Node version is 0.56.
Sun Jul  1 15:08:23 2018 - [info] Checking recovery script configurations on 192.168.2.128(192.168.2.128:3306)..
Sun Jul  1 15:08:23 2018 - [info]   Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/data/mysql/logs/bin-log --output_file=/tmp/save_binary_logs_test --

manager_version=0.56 --start_file=mysql-bin.000004
Sun Jul  1 15:08:23 2018 - [info]   Connecting to [email protected](192.168.2.128:22)..
  Creating /tmp if not exists..    ok.
  Checking output directory is accessible or not..
   ok.
  Binlog found at /data/mysql/logs/bin-log, up to mysql-bin.000004
Sun Jul  1 15:08:24 2018 - [info] Binlog setting check done.
Sun Jul  1 15:08:24 2018 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Sun Jul  1 15:08:24 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.129 --slave_ip=192.168.2.129 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 15:08:24 2018 - [info]   Connecting to [email protected](192.168.2.129:22)..
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 15:08:24 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.130 --slave_ip=192.168.2.130 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 15:08:24 2018 - [info]   Connecting to [email protected]92.168.2.130(192.168.2.130:22)..
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 15:08:24 2018 - [info] Slaves settings check done.
Sun Jul  1 15:08:24 2018 - [info]
192.168.2.128(192.168.2.128:3306) (current master)
 +--192.168.2.129(192.168.2.129:3306)
 +--192.168.2.130(192.168.2.130:3306)

Sun Jul  1 15:08:24 2018 - [info] Checking replication health on 192.168.2.129..
Sun Jul  1 15:08:24 2018 - [info]  ok.
Sun Jul  1 15:08:24 2018 - [info] Checking replication health on 192.168.2.130..
Sun Jul  1 15:08:24 2018 - [info]  ok.
Sun Jul  1 15:08:24 2018 - [info] Checking master_ip_failover_script status:
Sun Jul  1 15:08:24 2018 - [info]   /usr/local/bin/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.2.128 --orig_master_ip=192.168.2.128 --orig_master_port=3306
Sun Jul  1 15:08:24 2018 - [info]  OK.
Sun Jul  1 15:08:24 2018 - [warning] shutdown_script is not defined.
Sun Jul  1 15:08:24 2018 - [info] Got exit code 0 (Not master dead).

MySQL Replication Health is OK.
[[email protected] bin]# 

三、定时清理relay_log日志

可以把脚本写入2台slave从库机器的定时任务里面

192.168.2.129 [root ~]$ cat purge_relay_log.sh
#!/bin/bash
user=root
passwd=123456
port=3306
log_dir=‘/data/masterha/log‘
work_dir=‘/data‘
purge=‘/usr/local/bin/purge_relay_logs‘

if [ ! -d $log_dir ]
then
   mkdir $log_dir -p
fi

$purge --user=$user --password=$passwd --disable_relay_log_purge --port=$port --workdir=$work_dir >> $log_dir/purge_relay_logs.log 2>&1

192.168.2.129 [root ~]$ crontab -l
4 * * * /bin/bash /root/purge_relay_log.sh

四、启动MHA监控服务

4.1检查MHA Manager的状态

通过master_check_status脚本查看Manager的状态:
[[email protected] bin]# masterha_check_status --conf=/etc/masterha/app1.cnf
app1 is stopped(2:NOT_RUNNING).
[[email protected] bin]#
注意:如果正常,会显示"PING_OK",否则会显示"NOT_RUNNING",这代表MHA监控没有开启。

4.2开启MHA Manager监控(server04 192.168.2.130操作)如下:

[[email protected] bin]# mkdir -p  /var/log/masterha/app1/
[[email protected] bin]# nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &
[1] 42048
[[email protected] bin]# 

[[email protected] bin]# ps -ef|grep perl
root      42048  41142  0 12:50 pts/4    00:00:00 perl /usr/local/bin/masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover

参数介绍:

--remove_dead_master_conf      //该参数代表当发生主从切换后,老的主库的ip将会从配置文件中移除。

--manger_log                   //日志存放位置

--ignore_last_failover         //在缺省情况下,如果MHA检测到连续发生宕机,且两次宕机间隔不足8小时的话,则不会进行Failover,之所以这样限制是为了避免ping-pong效应。该参数代表忽略上次MHA触发切换产生的

文件,默认情况下,MHA发生切换后会在日志目录,也就是上面我设置的/data产生app1.failover.complete文件,下次再次切换的时候如果发现该目录下存在该文件将不允许触发切换,除非在第一次切换后收到删除该文件,

为了方便,这里设置为--ignore_last_failover。

查看MHA Manager监控是否正常:

[[email protected] bin]# masterha_check_status --conf=/etc/masterha/app1.cnf
app1 (pid:42048) is running(0:PING_OK), master:192.168.2.128
[[email protected] bin]# 

4.3查看监控管理日志:

[[email protected] bin]# cat /var/log/masterha/app1/manager.log
Sun Jul  1 12:51:00 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Sun Jul  1 12:51:00 2018 - [info] Reading application default configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:51:00 2018 - [info] Reading server configuration from /etc/masterha/app1.cnf..
Sun Jul  1 12:51:00 2018 - [info] MHA::MasterMonitor version 0.56.
Sun Jul  1 12:51:00 2018 - [info] GTID failover mode = 0
Sun Jul  1 12:51:00 2018 - [info] Dead Servers:
Sun Jul  1 12:51:00 2018 - [info] Alive Servers:
Sun Jul  1 12:51:00 2018 - [info]   192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:51:00 2018 - [info]   192.168.2.129(192.168.2.129:3306)
Sun Jul  1 12:51:00 2018 - [info]   192.168.2.130(192.168.2.130:3306)
Sun Jul  1 12:51:00 2018 - [info] Alive Slaves:
Sun Jul  1 12:51:00 2018 - [info]   192.168.2.129(192.168.2.129:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 12:51:00 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:51:00 2018 - [info]     Primary candidate for the new Master (candidate_master is set)
Sun Jul  1 12:51:00 2018 - [info]   192.168.2.130(192.168.2.130:3306)  Version=5.7.21-log (oldest major version between slaves) log-bin:enabled
Sun Jul  1 12:51:00 2018 - [info]     Replicating from 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:51:00 2018 - [info] Current Alive Master: 192.168.2.128(192.168.2.128:3306)
Sun Jul  1 12:51:00 2018 - [info] Checking slave configurations..
Sun Jul  1 12:51:00 2018 - [info]  read_only=1 is not set on slave 192.168.2.129(192.168.2.129:3306).
Sun Jul  1 12:51:00 2018 - [info] Checking replication filtering settings..
Sun Jul  1 12:51:00 2018 - [info]  binlog_do_db= , binlog_ignore_db=
Sun Jul  1 12:51:00 2018 - [info]  Replication filtering check ok.
Sun Jul  1 12:51:00 2018 - [info] GTID (with auto-pos) is not supported
Sun Jul  1 12:51:00 2018 - [info] Starting SSH connection tests..
Sun Jul  1 12:51:02 2018 - [info] All SSH connection tests passed successfully.
Sun Jul  1 12:51:02 2018 - [info] Checking MHA Node version..
Sun Jul  1 12:51:02 2018 - [info]  Version check ok.
Sun Jul  1 12:51:02 2018 - [info] Checking SSH publickey authentication settings on the current master..
Sun Jul  1 12:51:03 2018 - [info] HealthCheck: SSH to 192.168.2.128 is reachable.
Sun Jul  1 12:51:03 2018 - [info] Master MHA Node version is 0.56.
Sun Jul  1 12:51:03 2018 - [info] Checking recovery script configurations on 192.168.2.128(192.168.2.128:3306)..
Sun Jul  1 12:51:03 2018 - [info]   Executing command: save_binary_logs --command=test --start_pos=4 --binlog_dir=/data/mysql/logs/bin-log --output_file=/tmp/save_binary_logs_test --

manager_version=0.56 --start_file=mysql-bin.000004
Sun Jul  1 12:51:03 2018 - [info]   Connecting to [email protected](192.168.2.128:22)..
  Creating /tmp if not exists..    ok.
  Checking output directory is accessible or not..
   ok.
  Binlog found at /data/mysql/logs/bin-log, up to mysql-bin.000004
Sun Jul  1 12:51:03 2018 - [info] Binlog setting check done.
Sun Jul  1 12:51:03 2018 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Sun Jul  1 12:51:03 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.129 --slave_ip=192.168.2.129 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 12:51:03 2018 - [info]   Connecting to [email protected](192.168.2.129:22)..
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 12:51:03 2018 - [info]   Executing command : apply_diff_relay_logs --command=test --slave_user=‘monitor‘ --slave_host=192.168.2.130 --slave_ip=192.168.2.130 --slave_port=3306 --

workdir=/tmp --target_version=5.7.21-log --manager_version=0.56 --relay_log_info=/data/mysql/relay-log.info  --relay_dir=/data/mysql/data/  --slave_pass=xxx
Sun Jul  1 12:51:03 2018 - [info]   Connecting to [email protected](192.168.2.130:22)..
  Checking slave recovery environment settings..
    Opening /data/mysql/relay-log.info ... ok.
    Relay log found at /data/mysql/logs/relay-log, up to relay-bin.000003
    Temporary relay log file is /data/mysql/logs/relay-log/relay-bin.000003
    Testing mysql connection and privileges..mysql: [Warning] Using a password on the command line interface can be insecure.
 done.
    Testing mysqlbinlog output.. done.
    Cleaning up test file(s).. done.
Sun Jul  1 12:51:04 2018 - [info] Slaves settings check done.
Sun Jul  1 12:51:04 2018 - [info]
192.168.2.128(192.168.2.128:3306) (current master)
 +--192.168.2.129(192.168.2.129:3306)
 +--192.168.2.130(192.168.2.130:3306)

Sun Jul  1 12:51:04 2018 - [info] Checking master_ip_failover_script status:
Sun Jul  1 12:51:04 2018 - [info]   /usr/local/bin/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.2.128 --orig_master_ip=192.168.2.128 --orig_master_port=3306
Sun Jul  1 12:51:04 2018 - [info]  OK.
Sun Jul  1 12:51:04 2018 - [warning] shutdown_script is not defined.
Sun Jul  1 12:51:04 2018 - [info] Set master ping interval 1 seconds.
Sun Jul  1 12:51:04 2018 - [info] Set secondary check script: /usr/local/bin/masterha_secondary_check -s server03 -s server02 --user=root --master_host=server02 --master_ip=192.168.2.128 --

master_port=3306
Sun Jul  1 12:51:04 2018 - [info] Starting ping health check on 192.168.2.128(192.168.2.128:3306)..
Sun Jul  1 12:51:04 2018 - [info] Ping(SELECT) succeeded, waiting until MySQL doesn‘t respond..

五、关闭MHA Manage监控

(server04 192.168.2.130操作)如下:

关闭很简单,使用masterha_stop命令完成。(只是演示关闭,在测试中,必须是开启的状态,如果关了,在测试的时候务必记得开启)


[[email protected] bin]# masterha_stop --conf=/etc/masterha/app1.cnf
Stopped app1 successfully.
[[email protected] bin]# ps -ef|grep perl
root      46691  40702  0 14:00 pts/3    00:00:00 grep perl
[[email protected] bin]# 

请继续关注后续博文,后续博文会提到通过keepalived的方式管理虚拟ip的浮动,来实现mysql主库故障自动提升salve从库为新的主库

原文地址:http://blog.51cto.com/wujianwei/2135827

时间: 2024-10-09 05:37:46

MySQL之MHA+keepalived方案演示(三)的相关文章

MySQL之MHA+keepalived方案演示(五)

接着上篇博文MySQL之MHA+keepalived方案演示(四)中的MySQL的故障切换,当前主库变为了192.168.2.129机器,同时129机器上的keepalived服务被开启.然而192.168.2.128原来的主库被挂掉了,运行的keepalived也被停止了.重新启动192.168.2.128机器上的mysql,添加192.168.2.128机器上的mysql作为192.168.2.129新主库的slave从库. 查看 192.168.2.130 机器上的故障切换日志: grep

MySQL之MHA+keepalived方案演示(四)

配置VIP实现MHA架构中主库故障自动切换 1.说明 引入keepalived实现MHA架构中主库master故障时,从库slave自动提升为新的maservip配置可以采用两种方式:一种通过keepalived的方式管理虚拟ip的浮动:另外一种通过脚本方式启动虚拟ip的方式(即不需要keepalived或者heartbeat类似的软件).此处先介绍通过安装keepalived来管理虚拟IP的浮动: 1.1下载软件安装keepalived (两台master,准确的说一台是master,另外一台

MySQL之MHA+keepalived方案演示(二)

一.配置MHA工作环境 192.168.2.130机器操作:1.1.创建MHA的工作目录,并且创建相关配置文件(在软件包解压后的目录里面有样例配置文件).指的是可以下载 mha4mysql-manager-0.56.tar.gz解压后找到样例配置文件 [[email protected] ~]# ifconfig eth1|awk -F '[ :]+' 'NR==2{print $4}' 192.168.2.130 [[email protected] ~]# ll /usr/bin/maste

整个MHA+keepalived+lvs+mysql高可用架构配置说明

整个MHA+keepalived+lvs+mysql高可用架构配置说明1.1. 环境简介1.1.1.vmvare虚拟机,系统版本CentOS7.5 x86_64位最小化安装,mysql的版本5.7.21,1.1.2.虚拟机器的ssh端口均为默认22,1.1.3.虚拟机的iptables全部关闭,1.1.4.虚拟机的selinux全部关闭,1.1.5.虚拟机服务器时间全部一致 ntpdate 0.asia.pool.ntp.org1.1.6.3台机器的ssh端口为22**1.2.此次试验采用的是3

MySQL MHA+Keepalived

一.MHA的简单介绍MHA是由perl语言编写的,用外挂脚本的方式实现mysql主从复制的高可用性.MHA可以自动检测mysql是否宕机,如果宕机,在10-30s内完成new master的选举,应用所有差异的binlog日志到所有slave,将所有的slave切换到新的master上来.MHA除了自动检测mysql是否宕机,还能够交互式的切换master,在日常的数据库维护中,这个功能还是挺有用的.由于MHA本身只负责数据库主从的切换,但是应用程序并不知道数据库的master变了.针对这种情况

mysql高可用架构方案之一(keepalived+主主双活)

Mysql双主双活+keepalived实现高可用 目录 1.前言... 4 2.方案... 4 2.1.环境及软件... 4 2.2.IP规划... 4 2.3.架构图... 4 3.安装设置MYSQL半同步... 5 4.Keepalived实现MYSQL的高可用... 11 1.前言 最近研究了下高可用的东西,这里总结一下mysql主主双活的架构方案,整体上提高服务的高可用性,出现问题也不需要手动切换,提高整体的维护效率.确定改造的话,只需要让他们的程序中使用vip地址就可以,实现起来比较

源代码编译MYSQL5.6 环境下的MHA+KEEPALIVED的安装和维护

前    言 摘   要 MHA 是当 master 出现故障,挑选一个 slave 作为新的 master 并构建成新的 主从架构的管理工具.从 master 出现故障到构建成新的主从架构时间是 10-30 秒.在 master 出现故障时可能会出现 slave 同步的数据不一致的现象,此工具 可以自动应用差异的中继日志到其他 slave 上保证数据的一致性. 一.Mha 优点 1.M aster crash 时可以快速的进行故障切换. 9-12 秒内可以检测到 master 故障, 7-10

MYSQL数据库高可用方案探究

MySQL作为最关键的应用数据存储中心,如何保证MySQL服务的可靠性和持续性,是我们不得不细致考虑的一个问题.当master宕机的时候,我们如何保证数据尽可能的不丢失,如何保证快速的获知master宕机并进行相应的故障转移处理,都需要仔细考虑与规划. 要保证MySQL数据不丢失,replication是一个很好的解决方案,而MySQL提供了一套强大的replication机制,replication能极大地提升数据安全,异步复制的方式也保证了sql读写性能不受太大影响.在大量企业长期的使用和实

MySQL 高可用性之keepalived+mysql双主

生产环境中一台mysql主机存在单点故障,所以我们要确保mysql的高可用性,即两台MySQL服务器如果其中有一台MySQL服务器挂掉后,另外一台能立马接替其进行工作. MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. 这里将主要介绍了利用 keepalived 实现 MySQL数据库的高可用. Keepalived+mysql双主来实现MySQL-HA,我们必须保