本篇文章给大家分享的是有关MySQL 5.7.17 Group Relication的搭建是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
小编介绍了Group Replication的两种工作模式的架构。
并详细介绍了Single-Master Mode的部署过程,以及如何切换到Multi-Master Mode。
当然,文末给出了Group Replication的配置要求和一些限制。
〇 结构介绍
在2016年12月发布的5.7.17版本的MySQL,甲骨文宣布Group Replication已经GA。
Group Replication(下简称GR)有两个工作模式,分别为Single-Master Mode与Multi-Master Mode:
Single-Master Mode的failover图:
只有primary成员可读写,而其他的节点为只读,在primary成员发生故障时,将会有其他成员顶替成primary。
Multi-Master Mode的failover图:
所有的成员均可读可写。
关于脑裂问题,可发现MySQL Group Replication与MongoDB Relicate Set有相似之处:
和MongoDB的Relicate Set相近,其读写库类似于Primary,只读库类似于Secondary。
(下图来自MySQL官方)
(下图来自MongoDB 3.4 Manual)
〇 部署
测试实例数量:3台
版本:MySQL 5.7.17
安装(此处用的是二进制包安装)
mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
创建数据目录及日志目录:
loose-group_replication_single_primary_mode=FALSE
loose-group_replication_enforce_update_everywhere_checks=TRUE
(single-master mode 这俩个参数的值为TRUE和FALSE)
〇 要求和限制
仅可用于InnoDB存储引擎(需要事务的支持和行级锁)
表必须有主键(创建无主键的表不会报错,但在插入数据的时候会抛出:ERROR 3098 (HY000): The table does not comply with the requirements by an external plugin.)
必须启用GTID
必须开启二进制日志,并且其格式必须为ROW(binlog_format=row)
冲突DDl、DML只能在同一成员上执行成功
在多主结构中,不完全支持外键(单主结构中是没有问题的)
不支持serializable的事务隔离级别
只支持IPv4,并且需要低延迟,高带宽的网络环境
GR最大支持9个成员
复制信息元数据必须存在系统表(master-info-repository=TABLE、relay-log-info-repository=TABLE)
二进制日志checksums必须关闭(binlog-checksum=NONE)
不支持savepoint的使用
以上就是MySQL 5.7.17 Group Relication的搭建是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。