MySQL组复制(1):组复制技术简介

1.MySQL高可用的背景

数据库的主从复制是一个很实用的功能,但如何保证它的高可用却是一件难事。实现MySQL主从复制高可用的工具,常见的有:

  • (1).MMM:淘汰了,在一致性和高并发稳定性等方面有些问题。
  • (2).MHA:有些人还在用,但也有些问题,也是趋于淘汰的MySQL主从高可用方案。
  • (3).Galera:引领时代的主从复制高可用技术。
  • (4).MariaDB Galera Cluster:MariaDB对Galera的实现。
  • (5).PXC:Percona XtraDB Cluster,是Percona对Galera的自我实现,用的人似乎很多。
  • (6).GR:Group Replication,MySQL官方提供的组复制技术(MySQL 5.7.17引入的技术),基于Paxos算法。
    • MariaDB Galera Cluster、PXC、GR是类似的,都各有优点。但GR是革命性的,基于原生复制技术,据传很多方面都优于PXC。

但是,上面每个高可用实现方法,都有这样那样的缺点,甚至mmm还是通过perl脚本来自动化模拟高可用环境的。到了Galera,这是一个引领潮流的高可用技术,它主要针对具有事务特性的Innodb存储引擎,Percona和MariaDB都分别实现了自己的Galera技术:MariaDB Galera Cluster和Percona XtraDB Cluster。MySQL没有推出自己的Galera,但却在2016年的MySQL 5.7.17版本中推出了Group Replication,即组复制技术。

网上对组复制和Galera的对比很多,特别是2016年组复制出生后大火的"Galera将死"的言论,但实际上,仍然有很多人在用着pxc,毕竟它已经扬帆航行多年,而GR才出没多久,前几个版本也一直在修修补补。那么,GR or Galera, that‘s a question

废话说了一大堆,还是进入正文吧:MySQL组复制技术的简介。

2.什么是MGR?

MGR(MySQL Group Replication)是MySQL官方在MySQL 5.7.17版本中以插件形式推出的主从复制高可用技术,它基于原生的主从复制,将各节点归入到一个组中,通过组内节点的通信协商(组通信协议基于Paxos算法),实现数据的强一致性、故障探测、冲突检测、节点加组、节点离组等等功能。

例如,具有3个节点的组:

这3个节点互相通信,每当有事件发生,都会向其他节点传播该事件,然后协商,如果大多数节点都同意这次的事件,那么该事件将通过,否则该事件将失败或回滚。

这些节点可以是单主模型的(single-primary),也可以是多主模型的(multi-primary)。单主模型只有一个主节点可以接受写操作,主节点故障时可以自动选举主节点。多主模型下,所有节点都可以接受写操作,所以没有master-slave的概念。

就这样,完了。

原文地址:https://www.cnblogs.com/f-ck-need-u/p/9216828.html

时间: 2024-10-06 12:39:11

MySQL组复制(1):组复制技术简介的相关文章

Mysql Group Replication 简介及单主模式组复制配置【转】

一 Mysql Group Replication简介 Mysql Group Replication(MGR)是一个全新的高可用和高扩张的MySQL集群服务. 高一致性,基于原生复制及paxos协议的组复制技术,以插件方式提供一致数据安全保证: 高容错性,大多数服务正常就可继续工作,自动不同节点检测资源征用冲突,按顺序优先处理,内置自动防脑裂机制: 高扩展性,自动添加移除节点,并更新组信息: 高灵活性,单主模式和多主模式.单主模式自动选主,所有更新操作在主进行:多主模式,所有server同时更

MySQL组复制(4):配置多主模型的组复制

在这一篇,我演示的是如何配置MySQL组复制的多主模型(multi-primary).在配置上,多主模型的组复制和单主模型基本没区别. 本文仅为搭建和维护多主模型组复制抛块小砖,若对其间涉及的术语和理论有所疑惑,可参看: 单主模型相关内容的大长文:配置单主模型的组复制. 组复制的理论:MySQL组复制官方手册翻译. 使用组复制技术,必须要了解它的要求和局限性.见:组复制的要求和局限性. 1.组复制:单主和多主模型 MySQL组复制支持单主模型和多主模型,它们都能保证MySQL数据库的高可用. 单

mysql的组复制

                                                     mysql的组复制 先说说数据库复制的各种形式 异步复制模式下,Master上执行事务产生 binlog,slave 通过连接 master 抓取 binlog 的内容接收到本地的 relaylog 上,然后 apply 对应的事务,产生 slave 服务器上自身的 binlog(由--log-slave-update 参数决定).流程图如下: 其次是半同步复制,流程图如下 异步复制模式下,

实践 Mysql Group Replication 组复制

实践过程: 在一台服务器上安装3个MySQL(s1,s2,s3) 配置s1,启动 Group Replication 配置s2,添加到组中 配置s3,添加到组中 测试 内容比较长,可能不方便实际操作,我也做了一个PDF版本,您可以下载查看,发送消息 'gr' 会自动回复下载地址 详细配置过程 (1)下载 mysql-5.7.17 https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

MGR——Mysql的组复制之多主模式

组复制可以在两种模式下运行. 1.在单主模式下,组复制具有自动选主功能,每次只有一个 server成员接受更新.2.在多主模式下,所有的 server 成员都可以同时接受更新. 组复制与异步主从复制区别. 1.传统mysql主从复制,是在主节点执行和提交事务,然后把他们异步的发送到从节点,行复制的重新执行主节点的SQL语句,这是一个 shared-nothing 的系统,默认情况下所有 server 成员都有一个完整的数据副本. 2.半同步复制,它在协议中添加了一个同步步骤. 这意味着主节点在提

[MGR——Mysql的组复制之多主模式 ] 详细搭建部署过程

组复制可以在两种模式下运行. 1.在单主模式下,组复制具有自动选主功能,每次只有一个 server成员接受更新.2.在多主模式下,所有的 server 成员都可以同时接受更新. 组复制与异步主从复制区别. 1.传统mysql主从复制,是在主节点执行和提交事务,然后把他们异步的发送到从节点,行复制的重新执行主节点的SQL语句,这是一个 shared-nothing 的系统,默认情况下所有 server 成员都有一个完整的数据副本. 2.半同步复制,它在协议中添加了一个同步步骤. 这意味着主节点在提

[MGR——Mysql的组复制之单主模式 ]详细搭建部署过程

1,关于MySQL Group Replication 基于组的复制(Group-basedReplication)是一种被使用在容错系统中的技术.Replication-group(复制组)是由能够相互通信的多个服务器(节点)组成的. 在通信层,Groupreplication实现了一系列的机制:比如原子消息(atomicmessage delivery)和全序化消息(totalorderingof messages). 这些原子化,抽象化的机制,为实现更先进的数据库复制方案提供了强有力的支持

MySQL中间件之ProxySQL(15):ProxySQL代理MySQL组复制

返回ProxySQL系列文章:http://www.cnblogs.com/f-ck-need-u/p/7586194.html 1.ProxySQL+组复制前言 在以前的ProxySQL版本中,要支持MySQL组复制(MGR,MySQL Group Replication)需要借助第三方脚本对组复制做健康检查并自动调整配置,但是从ProxySQL v1.4.0开始,已原生支持MySQL组复制的代理,在main库中也已提供mysql_group_replication_hostgroups表来控

mysql 5.6 binlog组提交实现原理

mysql 5.6 binlog组提交实现原理 http://blog.itpub.net/15480802/viewspace-1411356 Redo组提交 Redo提交流程大致如下 lock log->mutex write redo log buffer to disk unlock log->mutex fsync Fsync写磁盘耗时较长且不占用log->mutex,也就是其执行期间其他线程可以write log buffer: 假定一次fsync需要10ms,而写buffe