本篇介绍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 安装包托管在 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