当前位置: 首页 > news >正文

MGR-单主模式搭建步骤 - Me

数据库服务器规划
序号 IP地址 主机名 数据库 端口号 ServerID 操作系统
1 192.168.1.2 baba1 mysql-5.7.25 3306 63 Centos7.6
2 192.168.1.3 baba2 mysql-5.7.25 3306 64 Centos7.6
3 192.168.1.4 baba3 mysql-5.7.25 3306 65 Centos7.6

  一. MGR介绍

MySQL Group Replication(MGR:mysql 组复制技术)是 MySQL 官方在 5.7.17 版本引进的

一个数据库高可用与高扩展的解决方案,以插件形式提供。

MGR 基于分布式 paxos 协议,实现组复制,在分布式中保证数据一致性和原子性,且具有容错率

的一致性算法。内置故障检测和自动选主功能,只要不是集群中的大多数节点都宕机,就可以继续正常工

作。

提供单主模式与多主模式,多主模式支持多点写入。

  二. MGR特点

  What's Group Replication(什么是组复制?)

  先说主从复制,一主多从,主库提供读写功能,从库提供读功能。当一个事务在 master 提交成功

时,会把 binlog 文件同步到从库服务器上为 relay log 给 slave 端执行,这个过程主库是不考虑从库是

否有接收到 binlog 文件,有可能出现这种情况,当主库 commit 一个事务后,数据库发生宕机,刚好它

的 binlog 还没来得及传送到 slave 端,这个时候选任何一个 slave 端都会丢失这个事务,造成数据不一

致情况。原理图如下:

  

image

 

  为了避免出现主从数据不一致的情况,MySQL 引入了半同步复制,添加多了一个从库反馈机制,这

个有两种方式设置:

  主库执行完事务后,同步 binlog 给从库,从库 ack 反馈接收到 binlog,主库才会提交 commit,

反馈给客户端,释放会话;

  主库执行完事务后,主库提交 commit,同步 binlog 给从库,从库 ack 反馈接收到 binlog,反馈

给客户端,释放会话;

  但是,问题来了,虽然满足了一主多从,读写分离,数据一致,但是,依旧有两个弊端: 

  写操作集中在 MASTER 服务器上;

  MASTER 宕机后,需要人为选择新主并重新给其他的 slave 端执行 change master,于是官方发布了 MySQL Group Replication

那么,MySQL Group Replication 可以提供哪些功能呢?

  1. 多主,在同一个 group 里边的所有实例,每一个实例可以执行写操作,也就是每个实例都执行Read-Write,

需要注意的是,多主情况下,当执行一个事务时,需要确保同个组内的每个实例都认可这个事务无冲

突异常,才可以 commit,如果设置的是单主,其他实例 ReadOnly,则不需要进行上面的判断

多主情况下,事务并发冲突问题就凸显出来了,如何避免呢?数据库内部有一个认证程序,当不同实

例并发对同一行发起修改,在同个组内广播认可时,会出现并发冲突,那么会按照先执行的提交,后执行

的回滚

  2. 弹性,同个 Group Replication 中,节点的加入或者移除都是自动调整;如果新加入一个节点,

该节点会自动从 Group 的其他节点同步数据,直到与其他节点一致;如果移除一个节点,那么剩下的实

例会自动更新,不再向这个节点广播事务操作,当然,这里要注意,假设一个 Group 的节点有 n 个

(max(n)=9,同个 Group 最多节点数为 9),移除或者宕机的节点数应该小于等于 floor((n-

1)/2) ,注意是向下取整;如果是单主模式,宕机的是单主,则人为选择新主后,其他节点也会自动从新

主同步数据。

  3. 更高性能的同步机制

一个复制组由若干个节点(数据库实例)组成,组内各个节点维护各自的数据副本(Share Nothing),

通过一致性协议实现原子消息和全局有序消息,来实现组内实例数据的一致。

  1、高一致性,基于原生复制及 paxos 协议的组复制技术,并以插件的方式提供,提供一致数据安全

保证;

  2、高容错性,只要不是大多数节点坏掉就可以继续工作,有自动检测机制,当不同节点产生资源争

用冲突时,不会出现错误,按照先到者优先原则进行处理,并且内置了自动化脑裂防护机制;

  3、高扩展性,节点的新增和移除都是自动的,新节点加入后,会自动从其他节点上同步状态,直到

新节点和其他节点保持一致,如果某节点被移除了,其他节点自动更新组信息,自动维护新的组信息;

  4、高灵活性,有单主模式和多主模式,单主模式下,会自动选主,所有更新操作都在主上进行;多

主模式下,所有 server 都可以同时处理更新操作。

  MGR 是 MySQL 数据库未来发展的一个重要方向。

  三.  MGR 基础结构要求

  1)引擎必须为 innodb,因为需要事务支持在 commit 时对各节点进行冲突检查

  2)每个表必须有主键,在进行事务冲突检测时需要利用主键值对比

  3)必须开启 binlog 且为 row 格式 --binlog-format=row(组复制依赖于基于行格式的二进制日

志,以便在组中传播所发生的更改能保持一致性。而且,在探测组中不同节点间发生的并发事务是否冲突

时,需要从行格式的日志中提取一些内容来做比较。 )

  4)开启 GTID,

--gtid-mode=ON (什么是 GTID?

GTID(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号。

GTID 实际上是由 UUID+TID 组成的。其中 UUID 是一个 MySQL 实例的唯一标识。TID 代表了该

实例上已经提交的事务数量,并且随着事务提交单递增。下面是一个 GTID 的具体形式

3E11FA47-71CA-11E1-9E33-C80AA9429562:23    UUID:TID

组复制使用 GTID(全局事务 ID)来精确跟踪每个节点上已经提交了哪些事务。也因此可以推断出某节

点上要执行的事务是否和已执行的事务(每个节点上都有副本)冲突。换句话说,GTID 是整个组复制判断

事务是否冲突的基础。)

http://www.rkmt.cn/news/81054.html

相关文章:

  • 金吉列 联系方式: 留学咨询选择建议及官方信息核实要点总结 - 品牌推荐
  • 2025苏州民间借贷纠纷律师服务核心能力深度评测报告 - 讯息观点
  • 软连接导致的 Ubuntu 系统盘爆满事件纪录
  • 如何在 Kuscia 中升级引擎镜像?
  • 金吉列 联系方式: 留学咨询机构选择前的通用考量指南 - 品牌推荐
  • 测汞仪厂家实力排名:2025年冷原子荧光测汞仪性价比推荐,哪家售后好?哪家信誉好?哪家口碑好? - 品牌推荐大师1
  • 2025年安徽云服务器软件服务商权威推荐榜单:管家婆软件/ERP软件/进销存软件综合服务商精选 - 品牌推荐官
  • 2025好的英国留学中介有哪些 - 留学品牌推荐官
  • 2025英国留学机构推荐 - 留学品牌推荐官
  • 2025起重电磁铁生产商TOP5权威推荐:正规厂商助力工业高 - mypinpai
  • 2025重庆维修改造厂家TOP5权威推荐:资深供应商甄选指南 - 工业品牌热点
  • 靠谱财务老牌公司排行,为你甄选比较不错的财务机构 - 工业品牌热点
  • 门店顾客安全监控 AI 卫士:AI 跌倒防护系统
  • 01 配置开发环境
  • 2025年比较好的中温脱硝催化剂/蜂窝式脱硝催化剂热门厂家推荐榜单 - 品牌宣传支持者
  • 2025冬季抗老面霜选哪个?既能温和抗老又能美白的抗老面霜实测推荐 - 资讯焦点
  • CTF密码学中的一些常用图形密码
  • 2025年口碑好的贵金属催化剂/烟气脱硝催化剂行业内知名厂家排行榜 - 品牌宣传支持者
  • 2025年比较好的端吸离心泵/化工离心泵用户口碑最好的厂家榜 - 品牌宣传支持者
  • vxe-tree 树组件拖拽排序功能的使用教程
  • 2025年五大广州新能源汽修培训学校排行榜,短期新能源汽修学 - myqiye
  • 2025年赣州口碑不错的宴席酒店、信誉高的乔迁宴席酒推荐 - 工业品牌热点
  • 避坑指南:2025年靠谱汽车托运公司排行,目前好评多的汽车托运平台综合实力与口碑权威评选 - 品牌推荐师
  • 2025年口碑好的PFHF-3C排烟防火阀厂家最新实力排行 - 品牌宣传支持者
  • 2025年比较好的超临界CO₂萃取厂家最新热销排行 - 品牌宣传支持者
  • 保险短视频拍摄如何选择靠谱服务商?2025年年终最新市场分析与专业推荐! - 十大品牌推荐
  • 2025年口碑好的BED防烟防火阀/防火阀用户口碑最好的厂家榜 - 品牌宣传支持者
  • 2025年度实力强的信创服务器TOP5推荐:国产服务器方案平 - mypinpai
  • 比较好的包装车间通风降温工业冷风机源头厂家,注塑车间降温通风/电炉车间通风降温/装配车间通风降温/机加工车间降温工业冷风机机构推荐 - 品牌推荐师
  • 保险短视频拍摄如何选择靠谱服务商?2025年年终最新服务商评估指南及1家专业公司推荐! - 十大品牌推荐