暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
4.MHA.docx
12
65页
0次
2025-04-19
50墨值下载
MHA 高可用
MHA 简介
MHAMaster High Availability)在 MySQL 高可用方面是一个相对成熟的解决方案,它
由日本 DeNA 公司 youshimaton 开发,是一套优秀的故障切换和主从提升的高可用软件。在
MySQL 故障切换过程中,MHA 能做到在 0~30 秒之内自动完成数据库的故障切换操作,并
且在进行故障切换的过程中,MHA 能在最大程度上保证数据的一致性,以达到真正意义上的
高可用。
MHA 是基于标准的 MySQL 复制(异步/半同步)。该软件由两部分组成:MHA Manager
(管理节点)和 MHA Node(数据节点)。
1. MHA Manager:可以单独部署在一台独立的机器上管理多个 master-slave 集群,也
可以部署在一台 slave 节点上。MHA Manager 会定时探测集群中的 node 节点,当
发现 master 出现故障的时候,它可以自动将具有最新数据的 slave 提升为新的
master,然后将所有其它的 slave 导向新的 master 上。整个故障转移过程对应用程序
是透明的。
2. MHA Node:运行在每台 MySQL 服务器上,它通过监控具备解析和清理 logs 功能
的脚本来加快故障转移的。
MHA 自动故障切换过程中,MHA 试图从宕机的主服务器上保存二进制日志,最大程度的
保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过 ssh 访问,
MHA 没法保存二进制日志,只进行故障转移而丢失了最新的数据。使用 MySQL 5.5 的半同
步复制,可以大大降低数据丢失的风险。MHA 可以与半同步复制结合起来,如果只有一个
slave 已经收到了最新的二进制日志,MHA 可以将最新的二进制日志应用于其他所有的
slave 服务器上,因此可以保证所有节点的数据一致性。
自动故障切换流程:
1. 从宕机崩溃的 master 上保存二进制日志事件(binlog events;
2. 识别含有最新更新的 slave
3. 应用差异的中继日志(relay log)到其他的 slave
4. 应用从 master 保存的二进制日志事件(binlog events);
5. 提升一个 slave 为新的 master
6. 使其他的 slave 连接新的 master 进行复制;
目前 MHA 主要支持一主多从的架构,要搭建 MHA,要求一个复制集群中必须最少有三台
数据库服务器,一主二从,即一台充当 master,一台充当备用 master,另外一台充当从库。
MHA 优点
1. 故障切换快:在主从复制集群中,只要从库在复制上没有延迟,MHA 通常可以在数
秒内实现故障切换。9-10 秒内检查到 master 故障,可以选择在 7-10 秒关闭 master
以避免出现裂脑,几秒钟内,将差异中继日志(relay log)应用到新的 master 上,因
此总的宕机时间通常为 10-30 秒。恢复新的 master 后,MHA 并行的恢复其余的
slave。即使在有数万台 slave,也不会影响 master 的恢复时间。
2. master 故障不会导致数据不一致:当目前的 master 出现故障时,MHA 自动识别
slave 之间中继日志(relay log)的不同,并应用到所有的 slave 中。这样所有的
salve 能够保持同步,只要所有的 slave 处于存活状态。和 Semi-Synchronous
Replication 一起使用,可以保证没有数据丢失。
3. 无需修当前的 MySQL 设置MHA 设计原则之一可能简单用。
MHA 作在传统MySQL 5.0 本和之后本的主从复制环境中。和其它高可用
解决方法MHA 并不需要改变 MySQL 的部署环境MHA 用于异步和半同步
的主从复制。
4. /停止///安装/卸载 MHA 不需要改变包扩启/停止MySQL 复制:
当需要升 MHA 到新的本,不需要停止 MySQL仅仅替换到新本的 MHA
然后重启 MHA Manager 就好了。
5. 无需加大的服务器:MHA MHA Manager MHA Node 组成。MHA
Node 运行在需要故障切换/恢复的 MySQL 服务器上,因此并不需要加服务器。
MHA Manager 运行在定的服务器上,因此需要加一台,但是 MHA Manager
可以监控大甚至台)单独的 master,因此,并不需要加大的服务器。即
使在一台 slave 上运行 MHA Manager 也是可以的。上,实现 MHA 并没用
加大的服务。
6. 无性能降:MHA 用于异步或半同步的 MySQL 复制。监控 master 时,MHA
是每几秒(默认3 秒)发一个 ping ,并不发送重。可以像原生
MySQL 复制一样快的性能。
7. 用于任何储引擎MHA 可以运行在只要 MySQL 复制运行的存储引擎上,并不
仅限制于 InnoDB,即使在不易迁移的传统MyISAM 引擎环境,一样可以使用
MHA
MHA
1. 需要编写脚本或三方具来实现 vip 配置
2. MHA 动后只会对数据库进行监控,需要基于 ssh 配置,存在一定的安全隐
3. 没有提从服务器的读负载均很的功能。
MHA 安装配置
1.系统准备
MHA 主机规划
主机
IP
角色
server_id
mysql01 192.168.1.102 Master 1
mysql02 192.168.1.103
Slave1(半同步/备选
master)
2
mysql03 192.168.1.104
Salve2(异步)
3
manager 192.168.1.105 MHA Manager
192.168.1.110(VI
P)
其中 master 对外提供写服务,备选 master(实slave,主机 mysql02)提供读服务,
slave 也提相关的服务,一 master 宕机,将会备选 master 提升为新的
masterslave 向新的 master
意: 为了可能的少主库硬件损坏宕机成的数据丢失,因此在配置 MHA 的同时建
配置MySQL 5.5 的半同步复制。
1.主机登录生效
hostnamectl set-hostname mysql01
hostnamectl set-hostname mysql02
hostnamectl set-hostname mysql03
hostnamectl set-hostname manager
2.关闭防火墙 selinux
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
getenforce
cat /etc/selinux/config
3. /etc/hosts
vi /etc/hosts
192.168.1.102 mysql01
192.168.1.103 mysql02
192.168.1.104 mysql03
192.168.1.105 manager
2.配置主从复制
Master 端配置部署
1.编辑配置文
of 65
50墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。