MHA实现Mysql一主多从的架构

MHA简介:

MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。
MHA还提供在线主库切换的功能,能够安全地切换当前运行的主库到一个新的主库中(通过将从库提升为主库),大概0.5-2秒内即可完成。

MHA工作原理:

简单画了一下
在这里插入图片描述

环境准备

centos7版本以上

cat /etc/redhat-release

内核3.10以上

uname -r
机器名称IP配置服务器角色备注
Manager10.0.0.41Manager用于监控管理
Master10.0.0.42数据库主服务器开启bin-log relay-log 关闭 relay_log_purge
Slave110.0.0.43数据库从服务器开启bin-log relay-log 关闭 relay_log_purge
Slave210.0.0.44数据库从服务器开启bin-log relay-log 关闭 relay_log_purge

为了设置免密登录方便、在各个节点里的etc/hosts配置文件内添加一下内容:

10.0.0.41 node1.keer.com node1
10.0.0.42 node1.keer.com node2
10.0.0.43 node1.keer.com node3
10.0.0.44 node1.keer.com node4

如以下图
在这里插入图片描述

配置一主多从

一主多从可以借鉴一下我的、也可以自己做一主多从的配置、非常详细

  1. 配置ssh免密登录
ssh-keygen -t rsa

执行完上一条命令需要自己输入三次回车

ll -a

在这里插入图片描述

cd .ssh
ssh-copy-id root@10.0.0.42
ssh-copy-id root@10.0.0.43
ssh-copy-id root@10.0.0.44
  1. Manager服务器上
    在这里插入图片描述
  2. Master服务器上
    在这里插入图片描述
  3. Slave1服务器上

在这里插入图片描述

  1. Slave2服务器上

在这里插入图片描述

以上操作从配置ssh免密登录开始、每个节点都要执行一遍、除了IP需要换一下。

  1. 安装MHA包

Manager需要两个包如下图在这里插入图片描述
其他三个节点只需要一个安装包如下图
在这里插入图片描述
需要包的可以去我网盘下载:MHA的安装包
MHA和其他三个节点需要的安装包

注释:下载完之后不要rpm安装直接以下方式安装

yum -y localinstall 加安装包的名字
  1. 设置MHA管理配置文件MHA节点操作
mkdir /etc/mha_master
vim /etc/mha_master/mha.cnf

配置文件如下

[server default]
user=mhaadmi  #Master设置的管理用户
password=123456 #Master设置的管理用户的密码
manager_workdir=/etc/mha_master/app1
manager_log=/etc/mha_master/manager.log
remote_workdir=/mydata/mha_master/app1
ssh_user=root  #ssh的免密认证
repl_user=root  #数据库授权的用户
repl_password=123456  #数据库授权的的密码
ping_interval=1
[server1]
hostname=10.0.0.42 #Master的ip
ssh_port=22
candidate_master=1
[server2]
hostname=10.0.0.43  #Slave1的ip
ssh_port=22
candidate_master=1
[server3]
hostname=10.0.0.44  #Slave2的ip
ssh_port=22
candidate_master=1
  1. 检测各节点间 ssh 互信通信配置是否 ok在MHA上操作
masterha_check_ssh -conf=/etc/mha_master/mha.cnf
  1. 检查管理的MySQL复制集群的连接配置参数是否OK在Master节点上执行
grant all on *.* to 'mhaadmi'@'10.0.%.%' identified by '123456';
flush privileges;
masterha_check_repl -conf=/etc/mha_master/mha.cnf

执行完如下图最后一行显示MySQL Replication Health is OK.即可在这里插入图片描述

  1. 启动MHA
    在MHA节点上执行
 nohup masterha_manager -conf=/etc/mha_master/mha.cnf &> /etc/mha_master/manager.log &

执行完如下图
在这里插入图片描述

  1. 启动之后看一下状态
masterha_check_status -conf=/etc/mha_master/mha.cnf

执行完如下图
在这里插入图片描述

  1. 测试MHA故障转移
    在Master节点关闭Mariadb服务、模拟Master节点关闭
systemctl stop mariadb

在Manager查看节点状态

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

执行完如下图
在这里插入图片描述

  1. 查看Slave2主从同步

在这里插入图片描述
现在Slave2显示主的IP是Slave1的IP然后显示成功

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值