使用MHA实现MySQL/MariaDB高可用

本篇介绍MHA部署过程,MHA工作原理请看这里

一、实验环境

作业系统:CentOS 7.7

服务器角色IP地址主机名应用程式
MHA Manager172.50.1.119basic-platformManager, node, mariadb
MHA Node | MySQL Master172.50.1.107nacos-mha-s1node, mariadb
MHA Node | MySQL Slave1172.50.1.108nacos-mha-s2node, mariadb
MHA Node | MySQL Slave2172.50.1.109nacos-mha-s3node, mariadb

二、部署MHA

MHA安装包托管在 Google Code 上,也可在 GitHub 上下载 mha-managermha-node 安装包

1.依赖环境

如果你准备的是一台全新的服务器,建议对服务器进行常用基础环境包的安装

# MHA Manager 和 MHA node 服务器都需要执行
sudo yum install perl-DBD-MySQL perl-Parallel-ForkManager perl-Log-Dispatch  perl-Config-Tiny -y

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 [email protected] 
sudo ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
sudo ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
sudo ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

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 检测集群日常运维操作,请看这里

默认图片
何瑞
懂点技术的命理师
文章: 41

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据