MySQL HA 方案 MMM、MHA、MGR、PXC 对比

MySQL高可用架构

MMM

(Multi Master Replication Manager)

资源数量说明
主DB2用于主备模式的主主复制
从DB0~N台可以根据需要配置N台从服务器
IP地址2n+1N为MySQL服务器的数量
监控用户1用户监控数据库状态的MySQL用户(replication)
代理用户1用于MMM代理端改变read_only状态

故障转移步骤:

  • Slave服务器上的操作

    • 完成原主上已经复制的日志恢复

    • 使用Change Master命令配置新主

  • 主服务器上操作

    • 设置read_only关闭

    • 迁移VIP到新主服务器

优点:

  • 提供了读写VIP的配置,试读写请求都可以达到高可用

  • 工具包相对比较完善,不需要额外的开发脚本

  • 完成故障转移之后可以对MySQL集群进行高可用监控

缺点:

  • 故障简单粗暴,容易丢失事务,建议采用半同步复制方式,减少失败的概率

  • 目前MMM社区已经缺少维护,不支持基于GTID的复制

适用场景:

  • 读写都需要高可用的

  • 基于日志点的复制方式

MHA

(MySQL Master High Availability)

需要资源:

资源数量说明
主DB2用于主备模式的主主复制
从DB2~N台可以根据需要配置N台从服务器
IP地址n+2N为MySQL服务器的数量
监控用户1用户监控数据库状态的MySQL用户(replication)
复制用户1用于配置MySQL复制的用户

MHA采用的是从slave中选出Master,故障转移:

  • 从服务器:

    • 选举具有最新更新的slave

    • 尝试从宕机的master中保存二进制日志

    • 应用差异的中继日志到其它的slave

    • 应用从master保存的二进制日志

    • 提升选举的slave为master

    • 配置其它的slave向新的master同步

优点:

  • MHA除了支持日志点的复制还支持GTID的方式

  • 同MMM相比,MHA会尝试从旧的Master中恢复旧的二进制日志,只是未必每次都能成功。如果希望更少的数据丢失场景,建议使用MHA架构。

缺点:

  • MHA需要自行开发VIP转移脚本。

  • MHA只监控Master的状态,未监控Slave的状态

MGR

(MySQL Group Replication)

支持多主模式,但官方推荐单主模式:

  • 多主模式下,客户端可以随机向MySQL节点写入数据

  • 单主模式下,MGR集群会选出primary节点负责写请求,primary节点与其它节点都可以进行读请求处理.

 
  1. // 查看MGR的组员

  2. select * from performance_schema.replication_group_members;

  3. // 查看MGR的状态

  4. select * from performance_schema.replication_group_member_stats;

  5. // 查看MGR的一些变量

  6. show variables like 'group%';

  7. // 查看服务器是否只读

  8. show variables like 'read_only%';

AI助手

优点:

  • 基本无延迟,延迟比异步的小很多

  • 支持多写模式,但是目前还不是很成熟

  • 数据的强一致性,可以保证数据事务不丢失

缺点:

  • 仅支持innodb

  • 只能用在GTID模式下,且日志格式为row格式

适用的业务场景:

  • 对主从延迟比较敏感

  • 希望对对写服务提供高可用,又不想安装第三方软件

  • 数据强一致的场景

Percona的PXC

Percona XtraDB Cluster是MySQL高可用性和可扩展性的解决方案, 的特性如下:

  • 同步复制,事务要么在所有节点提交或不提交。

  • 多主复制,可以在任意节点进行写操作。

  • 在从服务器上并行应用事件,真正意义上的并行复制。

  • 节点自动配置。

  • 数据一致性,不再是异步复制。

优点:

  • 当执行一个查询时,在本地节点上执行。因为所有数据都在本地,无需远程访问。

  • 无需集中管理。可以在任何时间点失去任何节点,但是集群将照常工作,不受影响。

  • 良好的读负载扩展,任意节点都可以查询。

缺点:

  • 加入新节点,开销大。需要复制完整的数据。

  • 不能有效的解决写缩放问题,所有的写操作都将发生在所有节点上。

  • 有多少个节点就有多少重复的数据。

MMMMHAMGRPXC
优点成熟稳定、对MySQL侵入小、 宕机后保证数据一致原生高可用、数据一致性保证、支持多主类似MGR
缺点太旧,2010年后停止维护;仅支持基于binlog的同步 不支持;MySQL5.6以后的提供的多线程同步技术 没有读负载的功能 主从切换时,容易造成数据丢失 ;MMM监控服务存在单点故障,避免的监控服务单点,需要自行实现选主方式过时、需要配合第三方脚本进行自动切换;管理节点单点;MySQL异步复制中的数据丢失,不能保证数据强一致性管理不方便(需配合mysql-shell)性能损耗大(降低为1/3)、 大事务会卡住整个集群、需要用第三方发行版MySQL


限制与不足

  • 仅支持InnoDB表,并且每张表一定要有一个主键,用于做write set的冲突检测;

  • 必须打开GTID特性,二进制日志格式必须设置为ROW,用于选主与write set

  • COMMIT可能会导致失败,类似于快照事务隔离级别的失败场景

  • 目前一个MGR集群最多支持9个节点

  • 不支持外键于save point特性,无法做全局间的约束检测与部分部分回滚

  • 二进制日志不支持binlog event checksum

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/65023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java12.24日记

运算符: 算术运算符: 顾名思义进行算数运算的 多为:四则运算,加一个取余 ,-,*,/以及 %(取余) 而外的:自增 以及自减--,对原数进行1或者-1 i…

SAP SD销售订单处理流程

本篇博文中的流程: 创建销售订单→依据销售订单创建交货单→依据销售订单开票 一、VA01创建销售订单 1、填入必填项,回车。可点击左上角的依照参考创建按钮。 依照参考创建可以参考以下6个。其中询价单、报价单、订单、合同和计划协议可以理解为特殊的…

怎么设置电脑密码?Windows和Mac设置密码的方法

为电脑设置密码是保护个人信息安全的重要措施。无论是Windows系统还是MacOS系统,设置密码的步骤都相对简单,但需要根据不同的操作系统选择不同的方法。 一、Windows系统电脑密码设置 方法一:通过控制面板设置账户密码 点击桌面左下角的“开…

机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)

线性回归 线性回归是一种较为简单,但十分重要的机器学习方法。掌握线性的原理及求解方法,是深入了解线性回归的基本要求。除此之外,线性回归也是监督学习回归部分的基石,希望你能通过本文掌握机器学习的一些重要的思想。 知识点…

Linux下编译安装Kokkos

本文记录在Linux下编译安装Kokkos的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1oneAPI2024.2.1 一、安装依赖 二、编译安装 参考文献 Mills R T. PETSc/TAO Developments for Early Exascale Systems[J]. 2024.Josef R. A Stud…

eMMC 存储分区结构解析

一、eMMC 存储分区结构图 分区 用途 Boot Area Partitions 存储引导加载程序,支持安全启动和恢复模式 RPMB Partition 存储安全关键数据,防止重放攻击 General Purpose Partitions OEM 自定义数据分区,用于特定功能或镜像存储 User D…

攻防世界web第一题

最近开始学习网络安全的相关知识,开启刷题,当前第一题 题目为攻防世界web新手题 这是题目 翻译:在这个训练挑战中,您将了解 Robots_exclusion_standard。网络爬虫使用 robots.txt 文件来检查是否允许它们对您的网站或仅网站的一部…

大恒相机开发(2)—Python软触发调用采集图像

大恒相机开发(2)—Python软触发调用采集图像 完整代码详细解读和功能说明扩展学习 这段代码是一个Python程序,用于从大恒相机采集图像,通过软件触发来采集图像。 完整代码 咱们直接上python的完整代码: # version:…

记一次某企业管理系统通用SQL注入挖掘

更多视频教程可看主页和专栏 目录: 一、资产发现 二、通用漏洞挖掘 三、通用漏洞经验总结 一、资产发现 通过漏洞挖掘过程中发现该系统存在sql注入 1.二话不说先来个单引号显示 ‘011111111111111’’) ) 再来一个单号试一试可不可以把他闭合掉 换成报错注入的poc 发现右边…

Mybatis 如何复用 SQL

比如你的Mapper是这样写的: 但这个接口是没有分页的,你还想再写一个有分页的查询接口,两个接口SQL一模一样,只是多了分页特性。你可以直接重载一个方法,增加分页参数,即可复用该SQL。如下:

Redis 介绍和安装

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Redis 入门介绍 收录于专栏[redis] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 本章将带领读者进入 Redis 的世…

快速解决VRay渲染慢问题

在3D设计与渲染领域,VRay渲染器无疑是一款强大且广泛使用的工具,但很多小伙伴在使用它进行 CPU 渲染时,都遇到过速度慢得让人抓狂的情况。今天,我就来给大家分享两套切实可行的解决方案。 当我们将 VRay渲染器与 DMAX或Maya搭配使…

《庐山派从入门到...》PWM板载蜂鸣器

《庐山派从入门到...》PWM板载蜂鸣器 配置PWM模块控制板载无源蜂鸣器播放【一闪一闪亮晶晶】播放do re mi 《庐山派从入门到...》PWM控制无源蜂鸣器 PWM(Pulse Width Modulation,脉宽调制)是一种在嵌入式系统中常用的技术,它可以用…

2024-12-24 NO1. XR Interaction ToolKit 环境配置

文章目录 1 软件配置2 安装 XRToolKit3 配置 OpenXR4 安装示例场景5 运行测试 1 软件配置 Unity 版本:Unity6000.0.26 ​ 2 安装 XRToolKit 创建新项目(URP 3D),点击进入 Asset Store。 进入“Unity Registry”页签&#xff0…

安卓15预置第三方apk时签名报错问题解决

有同事反馈集成apk时安装失败 PackageManager: Failed to scan /product/app/test: No APK Signature Scheme v2 signature in package /product/app/test/test.apk 查看编译后的apk签名信息 DOES NOT VERIFY ERROR: JAR signer CERT.RSA: JAR signature META-INF/CERT.SF indi…

【C语言】指针数组、数组指针、函数指针、指针函数、函数指针数组、回调函数

【C语言】函数指针与指针函数 文章目录 [TOC](文章目录) 前言一、指针数组二、数组指针三、函数指针四、指针函数五、函数指针数组六、回调函数七、参考资料总结 前言 使用工具: 1.DEVC 提示:以下是本篇文章正文内容,下面案例可供参考 一、…

【Leetcode】1705. 吃苹果的最大数目

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 有一棵特殊的苹果树,一连 n n n 天,每天都可以长出若干个苹果。在第 i i i 天,树上会长出 a p p l e s [ i ] apples[i] apples[i] 个苹果&a…

使用 HTML 和 CSS 实现绚丽的节日烟花效果

文章目录 1. 效果预览2. 核心技术栈3. 核心代码解读3.1 HTML结构3.2 霓虹文字的CSS样式3.2.1 核心样式代码3.2.2 动画效果 3.3 JavaScript 的烟花效果实现3.3.1 烟花上升3.3.2 粒子爆炸 4. 用户交互5. 运行步骤总结 1. 效果预览 打开后输入文本的展示内容 用户点击页面后播放…

基于openEuler22.09部署OpenStack Yoga云平台(一)

OpenStack Yoga部署 安装OpenStack 一、基础准备 基于OpenStack经典的三节点环境进行部署,三个节点分别是控制节点(controller)、计算节点(compute)、存储节点(storage),其中存储…

国自然面上项目分享|基于人工智能和病理组学的早癌筛查算法研究|基金申请·24-12-24

小罗碎碎念 今天分享的项目为【常规面上项目】,执行年限为2018年1月至2021年12月,直接费用为55万元。 今天分享的这个项目很有意思,因为这个项目的成果是团队2020年申报基金委优青的材料,并且还有临床验证和商业转化,值…