Mysql数据库—MHA高可用配置及故障切换

本文详细介绍了MHA(Master High Availability)的概述、组成和特点,并通过步骤演示了如何搭建MHA环境,包括配置一主两从的MySQL服务器、安装MHA软件及管理节点,实现故障模拟和修复,以确保数据库的高可用性和数据一致性。
摘要由CSDN通过智能技术生成

目录

一、MHA概述

二、MHA的组成

三、MHA的特点

四、搭建MHA

4.1 服务器准备

4.2 思路

4.3 三个节点安装mysql5.7并修改主机名

 4.4 修改三个节点的Mysql主配置文件

 4.5 在三个节点上都创建两个软链接

4.6 配置mysql一主两从

4.6.1 三个节点进行mysql授权

 4.6.2 master节点查看二进制文件和同步点

 4.6.3 slave1、slave2节点执行同步操作

 4.6.4 Slave1、Slave2节点查看数据同步结果

 4.6.5 两个从节点必须设置为只读模式

 4.6.6 插入数据测试数据库同步

4.7 安装MHA软件

4.7.1 所有服务器(4台)都安装MHA环境

 4.7.2 所有服务器安装MHA软件包

 4.7.3 MHA manager节点上安装manager组件

 4.8 所有服务器上配置无密码认证

 4.9 manager节点上配置MHA

 4.10 第一次配置需要在Master节点上手动开启虚拟IP

 4.11 manager节点上测试ssh无密码认证

 4.12 manager节点上测试mysql主从连接情况

4.13 manager节点上启动MHA

4.14 查看MHA状态

 4.15 查看当前日志信息

 4.16 查看Mysql1的VIP地址

 4.17 关闭manager服务

五、故障模拟

 六、故障修复


一、MHA概述

1.MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件 2.MHA 的出现就是解决MySQL单点的问题
3.MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作
4.MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用 

二、MHA的组成

1.MHA Node(数据节点) MHA Node运行在每台MySQL服务器上
2.MHA Manager(管理节点)
1)MHA Manager 可以单独部署在一台独立的机器上,管理多个 master-slave 集群;也可以部署在一台slave节点上
2)MHA Manager 会定时探测集群中的master节点。当master出现故障时,它可以自动将最新数据的slave提升为新的master, 然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明 

三、MHA的特点

1.自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失
2.使用半同步复制,可以大大降低数据丢失的风险,如果只有一个slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的slave服务器上,因此可以保证所有节点的数据一致性
3.目前MHA支持一主多从架构,最少三台服务,即一主两从

四、搭建MHA

4.1 服务器准备

 

4.2 思路

1.先使用三台mysql服务器,配置一主两从,实现主从复制
2.安装MHA软件
3.配置免密登录和MHA的高可用
4.模拟故障并进行查看

4.3 三个节点安装mysql5.7并修改主机名

#数据库前面都装过了,这边就不具体安装了

#关闭防火墙和安全功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

#修改主机名
hostnamectl set-hostname Mysql1(master)
hostnamectl set-hostname Mysql2(slave1)
hostnamectl set-hostname Mysql3(slave2)

img

 4.4 修改三个节点的Mysql主配置文件

#Master节点
vim /etc/my.cnf
[mysqld]
server-id = 1
log_bin = master-bin
log-slave-updates = true

systemctl restart mysqld

#Slave1、Slave2 节点
vim /etc/my.cnf
server-id = 2/3						#三台服务器的 server-id 不能一样
log_bin = master-bin
relay-log = relay-log-bin
relay-log-index = slave-relay-bin.index

systemctl restart mysqld

img

 img

 img

 4.5 在三个节点上都创建两个软链接

ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/

img

4.6 配置mysql一主两从

4.6.1 三个节点进行mysql授权

mysql -uroot -p264196
grant replication slave on *.* to 'myslave'@'192.168.80.%' identified by '264196';		    #从数据库同步使用
grant all privileges on *.* to 'mha'@'192.168.80.%' identified by 'manager';		#manager 使用

grant all privileges on *.* to 'mha'@'Mysql1' identified by 'manager';				#防止从库通过主机名连接不上主库
grant all privileges on *.* to 'mha'@'Mysql2' identified by 'manager';
grant all privileges on *.* to 'mha'@'Mysql3' identified by 'manager';
flush privileges;

img

 4.6.2 master节点查看二进制文件和同步点

show master status;

 4.6.3 slave1、slave2节点执行同步操作

change master to master_host='192.168.80.11',master_user='myslave',master_password='264196',master_log_file='master-bin.000003',master_log_pos=1745; 

start slave;      #开启从节点同步

img

 4.6.4 Slave1、Slave2节点查看数据同步结果

show slave status\G	
	
#确保IO和SQL线程都是 Yes,代表同步正常。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

img

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值