【MySQL】MMM和MHA高可用架构
用途
- 对MySQL主从复制集群的Master的健康监控。
- 当Master宕机后把写VIP迁移到新Master。
- 重新配置集群中的其他Slave从新Master同步
MMM架构
主服务器发生故障时,
1.主备服务器切换为新的主服务器:
(1)主备服务器设置read_only=off。
(2)主备服务器迁移写VIP到自己。
2.从服务器切换指向新的主服务器:
(1)完成原主服务器上已复制日志的恢复。
(2)使用Change Master to命令连接指向新的主服务器。
MMM架构优点
提供了读写VIP的配置,使得读写请求都可以做到高可用。
- 工具包相对完善,不需要额外开发脚本。
- 完成故障转移后,可以继续对MySQL集群进行高可用监控。
MMM架构缺点
故障切换简单粗暴易丢事务。解决方案:使用MySQL5.7及之后的半同步复制。
- 原生不支持GTID的复制方式。解决方案:自行修改perl脚本实现。
- 社区不活跃,很久未更新版本了。
- 需要的机器和IP地址资源较多。
MHA架构
主服务器发生故障时,
1.选举具有最新更新的Slave从节点。
2.尝试从宕机的Master主节点保存bin_log。
3.应用差异的中继relay_log到其他Slave从节点。
4.应用从Master主节点保存的bin_log。
5.提升选举出的Slave从节点为新的Master主节点。
6.配置其他Slave从节点从新的Master主节点主从同步。
MHA架构优点
既支持日志点的主从同步,也支持GTID的主从同步。
- 可从多个Slave中选举出最合适的新Master,无需单独准备一个Master备机。
- 尝试从老Master尽可能多的保存和获取未同步日志。
MHA架构缺点
未必能获取到老Master未同步日志。解决方案:使用MySQL5.7及之后的半同步复制。
- 需要自行开发写VIP转移脚本。
- 只保证了Master高可用,未保证Slave高可用。
【MySQL】MMM和MHA高可用架构的更多相关文章
- MHA高可用架构与Atlas读写分离
1.1 MHA简介 1.1.1 MHA软件介绍 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton ...
- mysql mha高可用架构的安装
MMM无法全然地保证数据的一致性,所以MMM适用于对数据的一致性要求不是非常高.可是又想最大程度的保证业务可用性的场景对于那些对数据一致性要求非常高的业务,非常不建议採用MMM的这样的高可用性架构.那 ...
- MySQL集群搭建(5)-MHA高可用架构
1 概述 1.1 MHA 简介 MHA - Master High Availability 是由 Perl 实现的一款高可用程序,出现故障时,MHA 以最小的停机时间(通常10-30秒)执行 mas ...
- MHA 高可用架构部署
一, MHA 介绍 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公 ...
- linux下mysql5.7的MHA高可用架构搭建
一.MHA简介 MHA(Master High Availability)目前在mysql高可用方面比较成熟.是一套优秀的作为 mysql高可用性环境下故障切换和主从提升的高可用软件.在MySQL故障 ...
- MySQL 部署 MHA 高可用架构 (二)
实现 MHA VIP 功能 配置 master_ip_failover 脚本(db3) 把 master_ip_failover 上传到 /iba/software 上 master_ip_failo ...
- MySQL 部署 MHA 高可用架构 (一)
MHA 官方网址 Manager : https://github.com/yoshinorim/mha4mysql-manager Node : https://github.com/yoshino ...
- 13、mha高可用架构搭建
各节点架构: 192.168.1.20(mysql5.5) master主库 192.168.1.21(mysql5.5) slave1,目标:主库宕可提升为主库 192.168.1.22(mysql ...
- haproxy mycat mysql 读写分离MHA高可用
主机IP信息 hostname IP 172.16.3.140 haproxy01 172.16.3.141 haproxy02 172.16.3.142 mycat01 172.16.3.143 m ...
随机推荐
- 关于 ASP.NET Core 中的 OData
1. BooksController using BooksODataService.Models; using Microsoft.AspNet.OData; using Microsoft.Asp ...
- [ida]查看某一函数在程序中被谁引用
1. 点亮函数名 2.view - open subviews - cross references 注意:不要点击绘图那个
- Flask 教程 第四章:数据库
本文翻译自 The Flask Mega-Tutorial Part IV: Database 在Flask Mega-Tutorial系列的第四部分,我将告诉你如何使用数据库. 本章的主题是重中之重 ...
- CAD制图初学入门教程:怎么在CAD中绘制箭头
在接触CAD的时候大家有没有和小编一样感觉无所适从,所以下面就来和大家分享一个CAD制图初学入门教程,在CAD中绘制箭头.在CAD图形上进行标注内容的时候一般都会使用箭头来进行指示,那具体怎么在CAD ...
- 浅谈Java中switch分支语句
前言: 在程序中遇到多分支选择的时候,想必大家都喜欢用if...else if...else...语句,尤其是初学者,因为在了解switch语句之前,我也是只会用if...else语句.那么现在看完这 ...
- centos7 apache后台转nginx后台
背景 一开始买完服务器装的是用apache搭的后台, 现在想使用nginx, 希望对你有参考作用 查看系统版本信息 lsb_release -a 我的版本信息是 首先关闭apache-tomcat服务 ...
- 【转载】Gradle for Android 第三篇( 依赖管理 )
依赖管理是Gradle最闪耀的地方,最好的情景是,你仅仅只需添加一行代码在你的build文件,Gradle会自动从远程仓库为你下载相关的jar包,并且保证你能够正确使用它们.Gradle甚至可以为你做 ...
- 【亲测有效】Ubuntu18.04 sudo apt update无法解析域名的解决方案
问题描述如下: 拿起了封尘已久的ThinkPad,输入 sudo apt update 的时候,发现这个命令变得不好使了,具体出现的问题如下图所示: #( 09/08/19@ 2:44下午 )( py ...
- scala 语法速查
摘自官网 variables var x = 5 Good x = 6 Variable. val x = 5 Bad x = 6 Constant. var x: Double = 5 Expl ...
- Spring Cloud Gateway报错:Unable to start embedded Tomcat
最近搭建Spring Cloud Gateway时启动项目出现如下报错信息: Error starting ApplicationContext. To display the conditions ...