MHA集群概述 、 部署MHA集群

MHA简介

MHA(Master High Availability)
  • 由日本DeNA公司youshimaton开发
  • 是一套优秀的实现MySQL高可用的解决方案
  • 数据库的自动故障切换操作能做到0~30s之间
  • MHA能确保在故障切换过程中最大限度的保证数据的一致性,以达到真正意义上的高可用

MHA组成

MHA Manager (管理节点)
  • 管理所有数据库服务器
  • 可以单独部署在一台独立的机器上
  • 也可以部署在某台数据库服务器上
MHA Node (数据节点)
  • 存储数据的;MySQL服务器
  • 运行在每台MySQL服务器上

MHA工作过程

由Manager定时探测集群中的Master节点
当master故障时,Manager自动将拥有最新数据的slave提升为新的master

MHA集群架构

在这里插入图片描述

案例1:准备MHA集群环境

1.1 问题

配置SSH免密登录
安装依赖包
配置MySQL一主多从结构

1.2 方案
准备5台虚拟机,角色规划如图所示。
在这里插入图片描述
IP规划,如图所示:
在这里插入图片描述
步骤一: 配置ssh免密登录

  1. 配置数据库服务器192.168.4.51
[root@host51 ~]# ssh-keygen //创建秘钥对,一路回车即可
[root@host51 ~]# for i in {53,52}; do ssh-copy-id root@192.168.4.$i; done
  1. 配置数据库服务器192.168.4.52
[root@host52 ~]# ssh-keygen //创建秘钥对
[root@host51 ~]# for i in {51,53}; do ssh-copy-id root@192.168.4.$i; done
  1. 配置数据库服务器192.168.4.53
[root@host53 ~]# ssh-keygen //创建秘钥对,一路回车即可
[root@host51 ~]# for i in {51,52}; do ssh-copy-id root@192.168.4.$i; done

步骤二: 安装依赖包

  1. 配置数据库服务器192.168.4.51
[root@host51 ~]# yum -y install perl-* //安装系统自带的perl软件包
  1. 配置数据库服务器192.168.4.52
[root@host52 ~]# yum  -y  install   perl-*  //安装系统自带的perl软件包
  1. 配置数据库服务器192.168.4.53
[root@host53 ~]# yum -y install perl-* //安装系统自带的perl软件包
  1. 配置管理服务器192.168.4.57
[root@mgm57 ~]# yum -y install perl-* //安装系统自带的perl软件包
步骤三: 配置MySQL一主多从结构
  1. 配置主服务器192.168.4.51
[root@host51 ~]# vim /etc/my.cnf
[mysqld]
log-bin=master51   //日志名
server_id=51       //指定server_id
[root@host51 ~]# systemctl  restart  mysqld
[root@host51 ~]# mysql  -uroot  -p123qqq…A
mysql> show master status; //查看日志信息
mysql: [Warning] Using a password on the command line interface can be insecure.
+-----------------+----------+--------------+------------------+-------------------+
| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-----------------+----------+--------------+------------------+-------------------+
| master51.000001 |     441 |              |                  |                   |
+-----------------+----------+--------------+------------------+-------------------+
mysql> grant replication slave on *.* to repluser@"%" identified by "123qqq...A";
  1. 配置从服务器192.168.4.52
[root@host52 ~]# vim /etc/my.cnf
[mysqld]
server_id=52 //指定server_id
[root@host52 ~]# systemctl restart mysqld //重启数据库服务
[root@host52 ~]# mysql -uroot –p123qqq…A //数据库管理员登录
mysql> change master to //指定主服务器信息
	master_host="192.168.4.51", //IP地址
	master_user="repluser", //授权用户
	master_password="123qqq...A", //授权用户密码
	master_log_file="master51.000001", //binlog日志
	master_log_pos=441; //偏移量
mysql> start slave;     //启动slave进程
[root@host52 ~]# mysql -uroot –p123qqq…A –e “show slave status\G” | grep 192.168.4.51
Master_Host: 192.168.4.51 //主服务器Ip地址
[root@host52 ~]# mysql -uroot –p123qqq…A –e “show slave status\G” | grep –i yes
Slave_IO_Running: Yes //I0线程正常
Slave_SQL_Running: Yes //SQL线程正常
  1. 配置从服务器192.168.4.53
[root@host53 ~]# vim /etc/my.cnf
[mysqld]
server_id=53 //指定server_id
[root@host53 ~]# systemctl restart mysqld //重启数据库服务
[root@host53 ~]# mysql -uroot –p123qqq…A //数据库管理员登录
	mysql> change master to //指定主服务器信息
	master_host="192.168.4.51", //IP地址
	master_user="repluser", //授权用户
	master_password="123qqq...A", //授权用户密码
	master_log_file="master51.000001", //binlog日志
	master_log_pos=441; //偏移量
mysql> start slave; //启动slave进程
[root@host53 ~]# mysql -uroot –p123qqq…A –e “show slave status\G” | grep 192.168.4.51
Master_Host: 192.168.4.51 //主服务器Ip地址
[root@host53 ~]# mysql -uroot –p123qqq…A –e “show slave status\G” | grep –i yes
Slave_IO_Running: Yes //I0线程正常
Slave_SQL_Running: Yes //SQL线程正常

案例2:部署MHA集群

2.1 问题

配置管理节点
配置数据节点
步骤一:配置管理节点
  1. 安装软件
mha4mysql-manager-0.56.tar.gz包下载地址 : https://www.lanzous.com/i8lpurg
[root@mgm57 ~]# yum install -y  mha4mysql-node-0.56-0.el6.noarch.rpm//安装mha-node软件包
[root@mgm57 ~]# tar -zxvf mha4mysql-manager-0.56.tar.gz 	//解压mha-manager软件包
[root@mgm57 ~]# cd mha4mysql-manager-0.56  //进入源码目录
[root@mgm57 ~]# yum install -y perl-CPAN*	//perl依赖包
[root@mgm57 ~]# yum install -y *ExtUtils*	//perl依赖包
[root@mgm57 mha4mysql-manager-0.56]# ls //查看文件列表
AUTHORS  COPYING  inc  Makefile.PL  META.yml  rpm      t
bin      debian   lib  MANIFEST     README    samples  tests
[root@mgm57 mha4mysql-manager-0.56]# perl Makefile.PL //配置
[root@mgm57 mha4mysql-manager-0.56]#  make //编译
[root@mgm57 mha4mysql-manager-0.56]#  make install //安装
  1. 编辑主配置文件
[root@mgm57 ~ ]#  mkdir  /etc/mha  //创建工作目录
[root@mgm57 ~ ]#  cp mha4mysql-manager-0.56/sample/conf/app1.cnf /etc/mha/ //拷贝模板文件
[root@mgm57 ~ ]#  vim /etc/mha/app1.cnf   //编辑主配置文件
[server default]     //管理服务默认配置
manager_workdir=/etc/mha    //工作目录
manager_log=/etc/mha/manager.log   //日志文件
master_ip_failover_script=/etc/mha/master_ip_failover //故障切换脚本,下面会指定配置perl脚本

ssh_user=root  //访问ssh服务用户
ssh_port=22    //ssh服务端口

repl_user=repluser           //主服务器数据同步授权用户
repl_password=123qqq…A    //密码

user=root                   //监控用户
password=123qqq…A               //密码

[server1]   //指定第1台数据库服务器
hostname=192.168.4.51    //服务器ip地址
port=3306                //服务端口
candidate_master=1               //竞选主服务器

[server2]  //指定第2台数据库服务器
hostname=192.168.4.52
port=3306
candidate_master=1  
            
[server3]  //指定第3台数据库服务器
hostname=192.168.4.53
port=3306
candidate_master=1
:wq
master_ip_failover脚本下载地址 : https://www.lanzous.com/i8lq2ob
  1. 创建故障切换脚本
[root@mgm57 ~]# cp mha-soft-student/master_ip_failover /etc/mha/
[root@mgm57 ~]# vim +35 /etc/mha/master_ip_failover
my $vip = '192.168.4.100/24';  # Virtual IP  //定义VIP地址,定义自己需要配置的vip
my $key = "1"; //定义变量$key
my $ssh_start_vip = "/sbin/ifconfig eth0:$key $vip"; //部署vip地址命令
my $ssh_stop_vip = "/sbin/ifconfig eth0:$key down"; //释放vip地址命令
[root@mgm57 ~]# chmod +x  /etc/mha/master_ip_failover //给脚本加执行权限
  1. 在当前主服务器部署vip地址
[root@host51 ~]# ifconfig  eth0:1  //部署之前查看 
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 52:54:00:d8:10:d7  txqueuelen 1000  (Ethernet)
[root@host51 ~]# ifconfig  eth0:1  192.168.4.100  //部署vip地址
[root@host51 ~]# ifconfig  eth0:1 //部署后查看
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.4.100  netmask 255.255.255.0  broadcast 192.168.4.255
        ether 52:54:00:d8:10:d7  txqueuelen 1000  (Ethernet)
步骤二:配置数据节点
  1. 在所有数据库服务器上,安装mha-node软件包
]# cd /root/mha-soft-student/
]# yum install -y mha4mysql-node-0.56-0.el6.noarch.rpm
  1. 在所有数据服务器上添加监控用户

可以只在host51主机执行授权命令,host52和host53 会自动同步授权

]# mysql –uroot –p密码
mysql> grant all on  *.*  to root@"%" identified by "123qqq...A";
  1. 在2台从服务器上添加,数据同步连接用户

在从服务器host52添加用户

[root@host52]# mysql –uroot –p密码
mysql> grant replication slave on  *.*  to repluser@"%" identified by "123qqq...A";

在从服务器host53添加用户

[root@host53]# mysql –uroot –p密码
mysql> grant replication slave on  *.*  to repluser@"%" identified by "123qqq...A";
  1. 修改数据库服务运行参数

修改主服务器host51

[root@host51 ~]# vim /etc/my.cnf
[mysqld]
plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" 	//加载模块
rpl_semi_sync_master_enabled=1  	//启用master模块
rpl_semi_sync_slave_enabled=1     //启用slave模块
relay_log_purge=0  	 //禁止自动删除中继日志文件
[root@host51 ~]#  systemctl  restart  mysqld  //重启服务

修改从服务器host52

[root@host52 ~]# vim /etc/my.cnf
[mysqld]
log_bin=master52
plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"	 //加载模块
rpl_semi_sync_master_enabled=1	  //启用master模块
rpl_semi_sync_slave_enabled=1     //启用slave模块
relay_log_purge=0 	  //禁止自动删除中继日志文件
[root@host52 ~]#  systemctl  restart  mysqld  //重启服务

修改从服务器host53

[root@host53 ~]# vim /etc/my.cnf
[mysqld]
log_bin=master53
plugin-load="rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" 	//加载模块
rpl_semi_sync_master_enabled=1 	//启用master模块
rpl_semi_sync_slave_enabled=1 	//启用slave模块
relay_log_purge=0 	//禁止自动删除中继日志文件
[root@host53 ~]# systemctl restart mysqld //重启服务

案例3:测试配置

3.1 问题

测试集群环境
访问集群
测试高可用
修复故障服务器
管理集群命令

在这里插入图片描述

步骤一:测试集群环境
  1. 在管理主机,测试ssh配置
 [root@mgm57 ~]# masterha_check_ssh --conf=/etc/mha/app1.cnf //执行测试命令
Thu Jun 20 15:33:48 2019 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Thu Jun 20 15:33:48 2019 - [info] Reading application default configuration from /etc/mha/app1.cnf..
.......
.......
Thu Jun 20 15:33:50 2019 - [debug]   ok.
Thu Jun 20 15:33:51 2019 - [info] All SSH connection tests passed successfully.//测试成功提示
  1. 在管理主机,测试主从同步
 [root@host57 ~]# masterha_check_repl --conf=/etc/mha/app1.cnf //执行测试命令
Thu Jun 20 15:37:46 2019 - [info] Reading server configuration from /etc/mha/app1.cnf..
Thu Jun 20 15:37:46 2019 - [info] MHA::MasterMonitor version 0.56.
Thu Jun 20 15:37:47 2019 - [info] GTID failover mode = 0
Thu Jun 20 15:37:47 2019 - [info] Dead Servers: //没有停止的mysql服务器
Thu Jun 20 15:37:47 2019 - [info] Alive Servers://运行mysql服务主机列表
........
........
Thu Jun 20 15:37:52 2019 - [warning] shutdown_script is not defined.
Thu Jun 20 15:37:52 2019 - [info] Got exit code 0 (Not master dead).
MySQL Replication Health is OK.//测试成功提示信息
  1. 启动管理服务
[root@mgm57 ~]# masterha_manager --conf=/etc/mha/app1.cnf  --remove_dead_master_conf \
--ignore_last_failover //执行启动命令
Thu Jun 20 17:05:58 2019 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Thu Jun 20 17:05:58 2019 - [info] Reading application default configuration from /etc/mha/app1.cnf..
Thu Jun 20 17:05:58 2019 - [info] Reading server configuration from /etc/mha/app1.cnf.. 
  1. 查看服务状态
[root@mgm57 ~]#  masterha_check_status  --conf=/etc/mha/app1.cnf//执行命令
app1 (pid:15806) is running(0:PING_OK), master:192.168.4.51 //服务运行,监视主服务器192.168.4.51
[root@mgm57 ~]# ls /etc/mha/   //查看工作目录文件列表
app1.cnf  app1.master_status.health  manager.log  master_ip_failover
步骤二:访问集群
  1. 在主服务器51 添加访问数据的连接用户
]# mysql  -uroot -p123qqq...A
mysql> create database db9;
Query OK, 1 row affected (0.05 sec)
mysql> create table db9.a (id int);
Query OK, 0 rows affected (0.63 sec)
mysql> grant select,insert on db9.* to yaya55@"%" identified by "123qqq...A";
Query OK, 0 rows affected, 1 warning (0.08 sec)
  1. 客户端50 连接vip地址访问集群
host50~]# mysql -h192.168.4.100  -uyaya55  -p123qqq...A
mysql> select  * from  db9.a;
mysql> insert into db9.a values(100);
mysql> select  * from db9.a;
+------+
|  id  |
+------+
| 100  |
+------+
1 row in set (0.00 sec)
  1. 在从服务器host52 查看数据
[root@host52 ~]# mysql -uroot -p123qqq...A -e "select  * from db9.a"
mysql: [Warning] Using a password on the command line interface can be insecure.
+------+
| id   |
+------+
|  100 |
+------+
  1. 在从服务器host53 查看数据
[root@host53 ~]# mysql -uroot -p123qqq...A -e "select  * from db9.a"
mysql: [Warning] Using a password on the command line interface can be insecure.
+------+
| id   |
+------+
|  100 |
+------+

步骤三:测试高可用

  1. 停止主服务器51的mysql服务
host51~]# systemctl  stop  mysqld
  1. 查看管理服务 ,输出的监控信息
 [root@mgm57~]#masterha_manager --conf=/etc/mha/app1.cnf  --remove_dead_master_conf \
> --ignore_last_failover
Thu Jun 20 17:05:58 2019 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Thu Jun 20 17:05:58 2019 - [info] Reading application default configuration from /etc/mha/app1.cnf..
Thu Jun 20 17:05:58 2019 - [info] Reading server configuration from /etc/mha/app1.cnf..
  Creating /var/tmp if not exists..    ok.
  Checking output directory is accessible or not..
   ok.
  Binlog found at /var/lib/mysql, up to master51.000002
Thu Jun 20 17:35:59 2019 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Thu Jun 20 17:35:59 2019 - [info] Reading application default configuration from /etc/mha/app1.cnf..
Thu Jun 20 17:35:59 2019 - [info] Reading server configuration from /etc/mha/app1.cnf..
[root@host57 ~]#
[root@mgm57 ~]# masterha_check_status  --conf=/etc/mha/app1.cnf
app1 is stopped(2:NOT_RUNNING).  //监控到主服务器宕机 管理服务自动停止
  1. 客户端依然连接vip地址,可以访问到数据
client50]# ping -c 2 192.168.4.100  //能够ping通vip地址
PING 192.168.4.100 (192.168.4.100) 56(84) bytes of data.
64 bytes from 192.168.4.100: icmp_seq=1 ttl=255 time=0.222 ms
64 bytes from 192.168.4.100: icmp_seq=2 ttl=255 time=0.121 ms
--- 192.168.4.71 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.121/0.171/0.222/0.052 ms
client50]# mysql -h192.168.4.100 -uyaya55 -p123qqq...A //连接vip地址
mysql> insert into db9.a values(200); //插入记录
mysql> select  * from db9.a;//查询记录
+------+
| id   |
+------+
|  100 |
|  200 |
+------+
  1. 查看vip地址

在host52主机查看到vip地址,说明host52 主机被选举为主服务器

 [root@host52 ~]# ifconfig  eth0:1
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.4.100  netmask 255.255.255.0  broadcast 192.168.4.255
        ether 52:54:00:f5:c4:6a  txqueuelen 1000  (Ethernet)

在host53主机未查看到vip地址,说明host53主机是当前host52的从服务器

 [root@host53 ~]# ifconfig  eth0:1 //未查到vip地址
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 52:54:00:28:22:2e  txqueuelen 1000  (Ethernet)
[root@host53 ~]# mysql -uroot -p123qqq...A -e "show slave status\G" | grep -i 192
mysql: [Warning] Using a password on the command line interface can be insecure.
                  Master_Host: 192.168.4.52  //主服务器Ip地址
[root@host53 ~]#
[root@host53 ~]# mysql -uroot -p123qqq...A -e "show slave status\G" | grep -i yes
mysql: [Warning] Using a password on the command line interface can be insecure.
             Slave_IO_Running: Yes  //IO线程正常
            Slave_SQL_Running: Yes  //SQL线程正常
 [root@host53 ~]# mysql -uroot -p123qqq...A -e "select  * from db9.a" //自动同步数据
mysql: [Warning] Using a password on the command line interface can be insecure.
+------+
| id   |
+------+
|  100 |
|  200 |
+------+
步骤四:修复故障服务器
  1. 配置数据库服务器

启动host51主机的数据库服务

host51~]# systemctl  start  mysqld

与主服务器数据一致

[root@host52 ~]#  mysqldump -uroot -p123qqq...A  --master-data  db9 > db9.sql //在主服务器host52 做完全备份
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@host52 ~]#
[root@host52 ~]# scp db9.sql  root@192.168.4.51:/root/  //拷贝备份文件给host51主机
db9.sql  100% 1918     3.1MB/s   00:00
[root@host52 ~]#
host51 ~]# mysql -uroot -p123qqq...A db9 < /root/db9.sql//host51 主机使用备份文件恢复数据
mysql: [Warning] Using a password on the command line interface can be insecure.

指定主服务器信息

 [root@host51 ~]# grep master52 /root/db9.sql  //查看日志名及偏移量
CHANGE MASTER TO MASTER_LOG_FILE='master52.000001', MASTER_LOG_POS=895;
[root@host51 ~]# mysql -uroot -p123qqq...A
mysql>change master to master_host="192.168.4.52",master_user="repluser",master_password="123qqq...A",master_log_file="master52.000001",master_log_pos=895;
Query OK, 0 rows affected, 2 warnings (0.14 sec)

启动slave进程

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
Mysql> exit ;

查看状态信息

 [root@host51 ~]# mysql -uroot -p123qqq...A -e "show slave status\G" |grep 192.168.4.52
mysql: [Warning] Using a password on the command line interface can be insecure.
                  Master_Host: 192.168.4.52 //主服务器ip地址
[root@host51 ~]#
[root@host51 ~]# mysql -uroot -p123qqq...A -e "show slave status\G" |grep -i yes
mysql: [Warning] Using a password on the command line interface can be insecure.
             Slave_IO_Running: Yes //IO线程状态正常
            Slave_SQL_Running: Yes //SQL线程状态正常
[root@host51 ~]#
  1. 配置管理服务器

修改配置文件,添加数据库服务器host51

]# vim /etc/mha/app1.cnf
 [server1 ]
hostname=192.168.4.51
port=3306
candidate_master=1
:wq

测试集群环境

[root@mgm57 ~]# masterha_check_ssh --conf=/etc/mha/app1.cnf //测试SSH
Thu Jun 20 15:33:48 2019 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Thu Jun 20 15:33:48 2019 - [info] Reading application default configuration from /etc/mha/app1.cnf..
Thu Jun 20 15:33:48 2019 - [info] Reading server configuration from /etc/mha/app1.cnf..
Thu Jun 20 15:33:48 2019 - [info] Starting SSH connection tests..
Thu Jun 20 15:33:49 2019 - [debug]
Thu Jun 20 15:33:48 2019 - [debug]  Connecting via SSH from root@192.168.4.51(192.168.4.51:22) to root@192.168.4.52(192.168.4.52:22)..
Thu Jun 20 15:33:49 2019 - [debug]   ok.
Thu Jun 20 15:33:49 2019 - [debug]  Connecting via SSH from root@192.168.4.51(192.168.4.51:22) to root@192.168.4.53(192.168.4.53:22)..
Thu Jun 20 15:33:49 2019 - [debug]   ok.
Thu Jun 20 15:33:50 2019 - [debug]
Thu Jun 20 15:33:49 2019 - [debug]  Connecting via SSH from root@192.168.4.52(192.168.4.52:22) to root@192.168.4.51(192.168.4.51:22)..
Thu Jun 20 15:33:49 2019 - [debug]   ok.
Thu Jun 20 15:33:49 2019 - [debug]  Connecting via SSH from root@192.168.4.52(192.168.4.52:22) to root@192.168.4.53(192.168.4.53:22)..
Thu Jun 20 15:33:49 2019 - [debug]   ok.
Thu Jun 20 15:33:50 2019 - [debug]   ok.
Thu Jun 20 15:33:50 2019 - [debug]  Connecting via SSH from root@192.168.4.53(192.168.4.53:22) to root@192.168.4.52(192.168.4.52:22)..
Thu Jun 20 15:33:50 2019 - [debug]   ok.
Thu Jun 20 15:33:51 2019 - [info] All SSH connection tests passed successfully.//成功
 [root@mgm57 ~]# masterha_check_repl --conf=/etc/mha/app1.cnf//测试主从同步
Thu Jun 20 15:37:46 2019 - [info] Reading server configuration from /etc/mha/app1.cnf..
Thu Jun 20 15:37:46 2019 - [info] MHA::MasterMonitor version 0.56.
Thu Jun 20 15:37:47 2019 - [info] GTID failover mode = 0
Thu Jun 20 15:37:47 2019 - [info] Dead Servers:
Thu Jun 20 15:37:47 2019 - [info] Alive Servers:
Thu Jun 20 15:37:47 2019 - [info]   192.168.4.51(192.168.4.51:3306)
Thu Jun 20 15:37:47 2019 - [info]   192.168.4.52(192.168.4.52:3306)
Thu Jun 20 15:37:47 2019 - [info]   192.168.4.53(192.168.4.53:3306)
Thu Jun 20 15:37:47 2019 - [info] Alive Slaves:
Thu Jun 20 15:37:47 2019 - [info]     Primary candidate for the new Master (candidate_master is set)
Thu Jun 20 15:37:47 2019 - [info]   192.168.4.53(192.168.4.53:3306)  Version=5.7.17-log (oldest major version between slaves) log-bin:enabled
Thu Jun 20 15:37:47 2019 - [info]     Replicating from 192.168.4.51(192.168.4.51:3306)
Thu Jun 20 15:37:47 2019 - [info]     Primary candidate for the new Master (candidate_master is set)
Thu Jun 20 15:37:47 2019 - [info] Current Alive Master: 192.168.4.51(192.168.4.51:3306)
Thu Jun 20 15:37:47 2019 - [info] Checking slave configurations..
Thu Jun 20 15:37:47 2019 - [info]  read_only=1 is not set on slave 192.168.4.52(192.168.4.52:3306).
Thu Jun 20 15:37:47 2019 - [info]  read_only=1 is not set on slave 192.168.4.53(192.168.4.53:3306).
Thu Jun 20 15:37:47 2019 - [info] Checking replication filtering settings..
Thu Jun 20 15:37:47 2019 - [info]  binlog_do_db= , binlog_ignore_db=
Thu Jun 20 15:37:47 2019 - [info]  Replication filtering check ok.
Thu Jun 20 15:37:47 2019 - [info] GTID (with auto-pos) is not supported
Thu Jun 20 15:37:47 2019 - [info] Starting SSH connection tests..
Thu Jun 20 15:37:49 2019 - [info] All SSH connection tests passed successfully.
Thu Jun 20 15:37:49 2019 - [info] Checking MHA Node version..
Thu Jun 20 15:37:50 2019 - [info]  Version check ok.
Thu Jun 20 15:37:50 2019 - [info] Checking SSH publickey authentication settings on the current master..
Thu Jun 20 15:37:50 2019 - [info] HealthCheck: SSH to 192.168.4.51 is reachable.
Thu Jun 20 15:37:50 2019 - [info] Master MHA Node version is 0.56.
Thu Jun 20 15:37:50 2019 - [info] Checking recovery script configurations on 192.168.4.51(192.168.4.51:3306)..
Thu Jun 20 15:37:50 2019 - [info]   Connecting to root@192.168.4.51(192.168.4.51:22)..
  Creating /var/tmp if not exists..    ok.
  Checking output directory is accessible or not..
   ok.
  Binlog found at /var/lib/mysql, up to master51.000002
Thu Jun 20 15:37:50 2019 - [info] Binlog setting check done.
Thu Jun 20 15:37:50 2019 - [info] Checking SSH publickey authentication and checking recovery script configurations on all alive slave servers..
Thu Jun 20 15:37:50 2019 - [info]   Connecting to root@192.168.4.52(192.168.4.52:22)..
  Checking slave recovery environment settings..
    Opening /var/lib/mysql/relay-log.info ... ok.
    Relay log found at /var/lib/mysql, up to host52-relay-bin.000006
    Temporary relay log file is /var/lib/mysql/host52-relay-bin.000006
    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.
Thu Jun 20 15:37:51 2019 - [info]   Connecting to root@192.168.4.53(192.168.4.53:22)..
  Checking slave recovery environment settings..
    Opening /var/lib/mysql/relay-log.info ... ok.
    Relay log found at /var/lib/mysql, up to host53-relay-bin.000006
    Temporary relay log file is /var/lib/mysql/host53-relay-bin.000006
    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.
Thu Jun 20 15:37:52 2019 - [info] Slaves settings check done.
Thu Jun 20 15:37:52 2019 - [info]
192.168.4.51(192.168.4.51:3306) (current master)
 +--192.168.4.52(192.168.4.52:3306)
 +--192.168.4.53(192.168.4.53:3306)
Thu Jun 20 15:37:52 2019 - [info] Checking replication health on 192.168.4.52..
Thu Jun 20 15:37:52 2019 - [info]  ok.
Thu Jun 20 15:37:52 2019 - [info] Checking replication health on 192.168.4.53..
Thu Jun 20 15:37:52 2019 - [info]  ok.
Thu Jun 20 15:37:52 2019 - [info] Checking master_ip_failover_script status:
Thu Jun 20 15:37:52 2019 - [info]   /etc/mha/master_ip_failover --command=status --ssh_user=root --orig_master_host=192.168.4.51 --orig_master_ip=192.168.4.51 --orig_master_port=3306
Thu Jun 20 15:37:52 2019 - [info]  OK.
Thu Jun 20 15:37:52 2019 - [warning] shutdown_script is not defined.
Thu Jun 20 15:37:52 2019 - [info] Got exit code 0 (Not master dead).
MySQL Replication Health is OK. //成功

重启管理服务

]# masterha_stop  --conf=/etc/mha/app1.cnf //停止管理服务
Stopped app1 successfully.
]# masterha_manager --conf=/etc/mha/app1.cnf  --remove_dead_master_conf \
--ignore_last_failover //启动管理服务
Thu Jun 20 17:05:58 2019 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.
Thu Jun 20 17:05:58 2019 - [info] Reading application default configuration from /etc/mha/app1.cnf..
Thu Jun 20 17:05:58 2019 - [info] Reading server configuration from /etc/mha/app1.cnf..

查看状态

mgm57 ~]# masterha_check_status  --conf=/etc/mha/app1.cnf
app1 (pid:15806) is running(0:PING_OK), master:192.168.4.52 //服务运行,监视服务器52
[root@mgm57 ~]#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值