本篇介绍MHA部署过程,MHA工作原理请看这里
一、实验环境
作业系统:CentOS 7.7
服务器角色 | IP地址 | 主机名 | 应用程式 |
MHA Manager | 172.50.1.119 | basic-platform | Manager, node, mariadb |
MHA Node | MySQL Master | 172.50.1.107 | nacos-mha-s1 | node, mariadb |
MHA Node | MySQL Slave1 | 172.50.1.108 | nacos-mha-s2 | node, mariadb |
MHA Node | MySQL Slave2 | 172.50.1.109 | nacos-mha-s3 | node, mariadb |
二、部署MHA
MHA安装包托管在 Google Code 上,也可在 GitHub 上下载 mha-manager 和 mha-node 安装包
1.依赖环境
如果你准备的是一台全新的服务器,建议对服务器进行常用基础环境包的安装
# MHA Manager 和 MHA node 服务器都需要执行 sudo yum install perl-DBD-MySQL perl-Parallel-ForkManager perl-Log-Dispatch perl-Config-Tiny -y
- MHA 是管理 MySQL/Mariadb 主从复制的高可用软件,所以在部署 MHA 之前,你必须要部署 MySQL/Mariadb 主从复制
- 四台服务器要做到时间同步
2.安装 Manager 节点
# manager 节点上也需要安装 mha-node 组件 sudo yum install mha4mysql-node-0.58-0.el7.centos.noarch.rpm sudo yum install mha4mysql-manager-0.58-0.el7.centos.noarch.rpm
3.安装 Node 节点
# mysql / mariadb 服务器上都需要安装 mha-node 组件,本实验环境总共 3 台服务器 sudo yum install mha4mysql-node-0.58-0.el7.centos.noarch.rpm
4.配置MHA Manager
- 首先登陆 Mariadb Master, 创建 mha 用户并授权
CREATE USER 'mha'@'%' IDENTIFIED BY 'Admin123'; GRANT ALL ON *.* TO 'mha'@'%'; FLUSH PRIVILEGES;
- 然后登陆 MHA Manager 服务器,创建 MHA Manager 配置文件 /etc/mha/mha.cnf ,写入以下内容
[server default] user=mha password=Admin123 repl_user=replication # 特别指出:这是 Mariadb 主从复制账号 repl_password=Admin123 # 特别指出:这是 Mariadb 主从复制密码 ssh_user=root manager_workdir=/opt/mha manager_log=/var/log/mha/mha.log remote_workdir=/opt/mha ping_interval=3 [server1] # Master hostname=172.50.1.107 [server2] # Slave One hostname=172.50.1.108 [server3] # Slave Two hostname=172.50.1.109
- 生成密钥对,使得 MHA Manager 通过 SSH 密钥登陆 Mariadb 服务器,三台 Mariadb 服务器也可互相登陆(四台机器都需要执行)
# 说明: # 1.四台服务器(一台MHA Manager, 三台Mariadb都需要执行) # 2.建议用 root 用户在 /root 目录下执行以下命令 # 3.为了图方便,每台服务器自身都做了ssh登陆,其实这是不严谨的,看到此文的童鞋勿喷 sudo ssh-keygen -t rsa sudo ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.50.1.107 sudo ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.50.1.108 sudo ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.50.1.109 sudo ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.50.1.119
5.校验配置
# 在 MHA Manager 服务器上,执行以下命令,进行校验配置 # 校验SSH,需要出现All SSH connection tests passed successfully代表成功。 sudo masterha_check_ssh --conf=/etc/mha/mha.cnf # 校验主从复制,需要出现MySQL Replication Health is OK代表成功。 sudo masterha_check_repl --conf=/etc/mha/mha.cnf
6.启动 MHA 监测集群
# 校验配置成功之后,在 MHA Manager 服务器上启动 MHA 监测集群 sudo nohup masterha_manager --conf=/etc/mha/mha.cnf < /dev/null > /var/log/mha/mha.log 2>&1 &
7.查看 MHA 监测集群服务状态
sudo masterha_check_status --conf=/etc/mha/mha.cnf
8.停止 MHA 监测集群服务
sudo masterha_check_stop --conf=/etc/mha/mha.cnf
MHA 检测集群日常运维操作,请看这里