基于MHA搭建MySQL集群高可用架构

MHA架构介绍

MHA是Master High Availability的缩写,它是目前MySQL高可用方面的一个相对成熟的解决方案,其核心是使用perl语言编写的一组脚本,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且能在最大程度上保证数据的一致性,以达到真正意义上的高可用。

基于MHA的架构不像MMM那样需要搭建主主复制,只需要搭建基本的主从复制架构即可。因为MHA在主库挂掉时,是在多个从库中选取出一个从库作为新的主库。MHA集群中的各节点彼此之间均需要基于ssh互信通信,以实现远程控制及数据管理功能。

MHA提供了什么功能:

可以监控Master节点是否可用

当Master不可用时,能在多个Slave中选举出新的Master

提供了主从切换和故障转移功能,MHA会尝试在宕机的Master上保存binlog,在最大程度上保证事务不丢失。但如果是Master所在的服务器已经无法访问,或硬件层面出现了问题,则无法成功保存binlog

MHA可以与半同步复制结合,避免从库之间出现数据不一致的情况

支持MySQL基于GTID和基于日志点的两种复制方式

MHA故障转移过程:

尝试使用ssh登录到宕机崩溃的Master节点上保存二进制日志事件(binlog events);

从多个Slave中识别含有最新更新的Slave,将其作为备选的Master;

然后基于该Slave同步差异的中继日志(relaylog)到其他的Slave上;

接着同步从原Master上保存的二进制日志事件(binlog events);

将备选的Master提升为新的Master;

使其他的Slave连接新的Master进行复制;

在新的Master启动vip地址,保证前端请求可以发送到新的Master。

MHA的架构图如下:

动手搭建MHA架构

本文中所使用的机器说明:

名称

HOST

角色

master

10.7.6.10

master mha node

slave-01

10.7.6.11

slave mha node

slave-02

10.7.6.9

slave mha node

manager

10.7.6.9

mha manager

环境版本说明:

操作系统版本:CentOS 7

MySQL版本:5.7

MHA版本:0.58

修改主机名

分别在三台主机上修改IP主机名:

vim /etc/hosts

添加如下配置:

i

关闭防火墙

每个主机上都需要进行操作:

systemctl stop iptables 
systemctl stop firewalld 
systemctl disable firewalld.service

配置主机间SSH信任,实现免密登录

分别在每台主机上创建密钥对:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1

将公钥分别发送到其他主机上

ssh-copy-id -i /root/.ssh/id_dsa.pub root@master
ssh-copy-id -i /root/.ssh/id_dsa.pub root@slave-01
ssh-copy-id -i /root/.ssh/id_dsa.pub root@slave-02

验证免密登录是否成功:

ssh master 
ssh slave-01 
ssh slave-02

如果不用输入密码就能登录,则证明配置成功。

MYSQL主从复制搭建

安装文件准备

需要分别将MYSQL安装包mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar和MHA node安装包mha4mysql-node-0.58-0.el7.centos.noarch.rpm上传到三台主机上,

并且将MHA manager安装包mha4mysql-manager-0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值