ITPub博客

首页 > 数据库 > MySQL > MySQL5.7.26 MHA集群部署操作手册

MySQL5.7.26 MHA集群部署操作手册

原创 MySQL 作者:dba_sam 时间:2021-06-15 17:53:41 0 删除 编辑

说明:
基于CentOS7.6系统安装
使用MySQL 5.7.26,MHA 0.58版本安装

1.系统配置

1.关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
2.关闭SElinux
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
setenforce 0
3.设置主机名
 

IP hostname 角色
10.10.10.50 manager MHA manager
10.10.10.51 mysql01 MySQL DB Server - Master, MHA Node
10.10.10.52 mysql02 MySQL DB Server- Slave, MHA Node
10.10.10.53 mysql03 MySQl DB Server - Slave, MHA Node

 

2.配置各节点间SSH互信

ssh-keygen
ssh-copy-id manager
ssh-copy-id mysql01
ssh-copy-id mysql02
ssh-copy-id mysql03

3.安装MHA Manager

yum -y install epel-release net-tools
yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager
rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm
rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm

4.安装MHA Node

yum -y install epel-release net-tools
yum -y install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager
rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm

5.部署GTID一主二从环境

略
备库执行set global read_only=on;不要写入配置文件
 
create user root@'%' identified by 'mysql';
grant all on *.* to root@'%';
用于监控

6.配置MHA

mkdir -p /masterha/log
mkdir -p /masterha/tmp
mkdir -p /masterha/mysql
mkdir -p /masterha/app1
touch /masterha/log/app1_manager.log
 
vim /etc/masterha_default.cnf
vim /etc/mha/app1.cnf
vim /masterha/scripts/master_ip_failover
vim /masterha/scripts/master_ip_online_change
vim /masterha/scripts/send_report

检查配置
masterha_check_ssh --conf=/etc/mha/app1.cnf
masterha_check_repl --conf=/etc/mha/app1.cnf
 

7.启动MHA

master(mysql01)执行:
ifconfig ens32:1 10.10.10.61/24
 
manager执行:
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /masterha/log/app1_manager.log 2>&1 &

masterha_check_status --conf=/etc/mha/app1.cnf

 

8.在线切换

关闭MHA
masterha_stop --conf=/etc/mha/app1.cnf
 
切换
masterha_master_switch --conf=/etc/mha/app1.cnf --master_state=alive --new_master_host=10.10.10.52 --orig_master_is_new_slave --running_updates_limit=10000 --interactive=0

登录数据库通过show master status; show slave status;检查,数据库角色切换成功
 
重新启动MHA
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /masterha/log/app1_manager.log 2>&1 &
 

9.failover

模拟主库故障,杀掉master节点MySQL进程(mysql01)
 
主库切换至mysql02
VIP漂移至mysql02
/etc/mha/app1.cnf中mysql01的信息被删除
mysql03主库重定向为mysql02

10.恢复踢出节点

关闭MHA:
masterha_stop --conf=/etc/mha/app1.cnf
 
/etc/mha/app1.cnf中恢复mysql01信息
[server1]
candidate_master=1
hostname=10.10.10.51
port=3306
 
mysql01启动数据库并恢复(生产环境根据情况可能需要完全恢复),并加入主从
CHANGE MASTER TO MASTER_HOST ='10.10.10.52',MASTER_PORT =3306,MASTER_USER ='repl',MASTER_PASSWORD ='mysql',MASTER_AUTO_POSITION = 1;
 
重新启动MHA:
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /masterha/log/app1_manager.log 2>&1 &

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000068/viewspace-2776806/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
oracle 11g OCP、12c OCM,从事oracle、mysql、postgresql等数据库管理多年,具备丰富的实战经验,同时维护大型企业的Linux操作系统、vmware虚拟化、openstack云计算平台,具有部署、优化、故障处理等经验。

注册时间:2021-05-16

  • 博文量
    62
  • 访问量
    158813