目录
一、MHA概念
1.什么是MHA
2.MHA的组成
2.1MHA Node(数据节点)
2.2MHA Manager(管理节点)
3.MHA特点
4.MHA工作原理(流程)
二、搭建MySQL MHA
1.准备环境
2.搭建主从复制
2.2配置MySQL一主两从
2.3验证主从复制效果
3.安装MHA软件
3.1所有服务器上都安装MHA依赖环境
3.2安装MHA软件包
3.3在MHA manager节点上安装manager组件
4.在所有服务器上配置无密码验证
4.1在manager节点上配置到所有数据库节点的无密码验证
4.2在Master上配置到数据库节点Slave1和Slave2的无密码验证
4.3在Slave1上配置到数据库节点Master和Slave2的无密码验证
5.在manager节点上配置MHA
5.1在manager节点上复制相关脚本到/usr/local/bin目录
5.2复制自动切换时VIP管理脚本到/usr/local/bin目录
5.3修改master_ip_failover脚本
5.4创建MHA软件目录并复制配置文件
6.在Master服务器上手动开启VIP
7.在manager节点上测试ssh无密码认证
8.在manager节点上测试MySQL主从连接情况
9.在manager节点上启动MHA
10.查看MHA状态,可以看到当前的Master、
11.查看MHA日志,可以看到当前master
12.关闭manager服务
三、故障模拟
1.在manager节点上监控观察日志记录
2.模拟master节点故障关闭服务
3.查看manager节点动态日志
4.故障切换备选主库的算法
四、故障修复
1.修复原master节点
2.修复主从
3.在manager节点上修改配置文件app1.cnf
4.在manager节点上重启MHA
总结
MySQL服务器中,单台服务器无法承载服务量就配置多台MySQL服务器,多台MySQL服务器或者MySQL服务器无冗余的情况下,配置主从复制。MySQL服务器的读和写的压力不均衡可使用MySQL的读写分离,MySQL的读写分离中Master存在单点故障,就得用到MHA
一、MHA概念
1.什么是MHA
MHA(Master High Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件
MHA的出现就是解决MySQL单点故障的问题
MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作
MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用
2.MHA的组成
2.1MHA Node(数据节点)
MHA Node运行在每台MySQL服务器上
2.2MHA Manager(管理节点)
MHA Manager可以单独部署在一台独立的机器上,管理多个Master-Slave集群;也可以部署在一台Slave节点上
MHA Manager会定时探测集群中的master节点。当master出现故障时,它可以自动将最新数据的Slave提升为新的Master,然后将所有其他的Slave重新指向新的Master
整个故障迁移的过程对应用程序完全透明
3.MHA特点
自动故障切换的过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据不丢失
使用半同步复制,可以大大降低数据丢失的风险,如果只有一个Slave已经收到了最新的二进制日志,MHA可以将最新的二进制日志应用于其他所有的Slave服务器上,因此可以保证所有节点的数据一致性
目前MHA支持一主多从架构,最少三台服务,即一主两从
MHA:为了解决的是故障切换、数据尽可能地保存,以及所有节点日志地一致性
4.MHA工作原理(流程)
MHA有3个部分
- 核心是主从
- Manager 管理节点:管理数据库集群信息,定义、触发故障切换
- Node 数据节点:主要负责保存日志、比较中继日志,选择主备
MHA会通过Node监控MySQL数据库服务地节点信息,定期检测和返回Master角色地健康状态(健康检查)
MHA通过将VIP定义在Master节点上,并且数据库的访问也从此VIP进入,当Master异常时,MHA会进行”故障切换”,就是VIP漂移+二进制日志保存
漂移到主备节点后,会通过脚本命令来控制MySQL服务器角色的变更,例如将主-备服务器变更为主服务器,将其他的从服务器指向新的主服务器,来继续运行
MHA工作原理总结如下:
1.从宕机崩溃的master保存二进制日志时间(binlog events)
2.识别含有最新的更新的slave日志
3.应用差异的中继日志(relay log)到其他的slave
4.应用从master保存的二进制日志事件
5.提升一个slave为新的master
6.使其他的slave联机新的master进行复制
二、搭建MySQL MHA
MHA高可用是基于主从复制的基础上进行安装部署一台新的MHA Manager服务器,高服务器用来监控Master服务器,当Master服务器出现故障时,它可以自动将最新的数据Slave提升为Master(或者可指定直接新的Master)。然后其它的Slave重新指向新的Master
1.准备环境
服务器 | IP |
---|---|
MHA Manager | 192.168.226.162 |
Master | 192.168.226.150 |
Slave1 | 192.168.226.151 |
Slave2 | 192.168.226.152 |
所有服务器关闭防火墙,关闭核心防护
2.搭建主从复制
192.168.226.150为Master服务器,192.168.226.151为Slave1服务器,192.168.226.152为Slave2服务器
2.1修改Master、Slave1、Slave2节点的MySQL主配置文件/etc/my.cnf
Master主服务器(192.168.226.150)
修改配置文件
重启MySQL服务
Slave节点服务器(192.168.226.151,192.168.226.152)
修改slave配置文件
2.2配置MySQL一主两从
所有数据库节点进行MySQL授权
Master服务器
Slave服务器
在Master节点上查看二进制文件和位置点
开启Slave从服务器功能
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!