Mysql group replication复制原理

  • 时间:
  • 浏览:3

| 69e1a3b8-8397-11e6-8e67-bf68cbc061a4 |

      在单主模式下,无需 否两个节点还都都可以 还都都可以 读写,有一种节点无需 否提供读,在单主模式下,该参数 group_replication_enforce_update_everywhere_checks 还都都可以 被设置为 FALSE ,当主节点宕掉,自动会根据服务器的server_uuid变量和group_replication_member_weight变量值,选取下两个slave谁作为主节点,group_replication_member_weight的值最高的成员被选为新的主节点,在group_replication_member_weight值相同的情况汇报下,group根据数据字典中 server_uuid排序,排序在最前的被选取为主节点

1、单主模式

下面的示例展示了怎样在单主模式中发现当前的主服务器,该值VARIABLE_VALUE为实例节点的server_uuid

前言:

一、传统群克隆

+--------------------------------------+

         Mysql版本5.7.17推出Mysql group replication(组群克隆),相对并且传统的群克隆模式(异步群克隆模式async replication 及半同步群克隆模式semi-sync replication),两个主,对应两个或多个从,在主数据库上执行的事务通过binlog群克隆的方法传送给slave,slave通过 IO thread守护进程接收将事务先写入relay log,但会 重放事务,即在slave上重新执行一次事务,从而达到主从事务一致的效果,如下图为有一种群克隆模式:

       在多主模式下,在加入该群组的所有成员,所有服务器都设置为读写模式,在多主模式下,不支持SERIALIZABLE事务隔离级别,在多主模式下,无需 否详细支持级联外键约束

2、多主模式  

+--------------------------------------+

MySQL Semisynchronous Replication (半同步群克隆):master执行事务,写入二进制日志,将binlog事务日志传送到slave,slave接收到binlog事务日志后,将其写到relay log,但会 向master返回传送成功ACK;master收到ACK后,再在存储引擎中提交事务

| VARIABLE_VALUE                       |

MySQL Group Replication有有一种模式,单主模式single-primary mode和多主模式multi-primary mode,在同两个group内,不允许有一种模式一并发生,但会 若要切换到不同模式,还都都可以 修改配置后重新启动集群

MySQL Asynchronous Replication(异步群克隆):master执行事务,写入二进制日志,但会 提交,slave接收binlog日志事务并将事务先写入relay,但会 重做事务

+--------------------------------------+

mysql> SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME= 'group_replication_primary_member';

      在mysql多主模式下,在组群克隆中通过Group Replication Protocol协议及Paxos协议,形成的整体高可用处理方案 一并增加了certify的概念,负责检查事务是否 允许提交,是否 与其它事务发生冲突,Group Replication是由多个节点一并组成两个数据库集群,每个节点都还都都可以 单独执行事务,但会 read-write(rw)的操作无需 否在组内验证后无需 否commit,Read-only (RO)事务是无需 否验证还都都可以 立即执行,当两个事务在两个节点上提交并且,会在组内自动进行原子性的广播,告知有一种节点变更了那先 内容/执行了那先 事务,但会 为该事物建立两个全局的排序,最终,这是因为所有的服务器都以相同的顺序接收相同的事务集。但会 ,所有服务器都按照相同的顺序应用相同的变更集,但会 它们在组中保持一致

3、组群克隆