• 欢迎来到本博客,希望可以y一起学习与分享

MySQL MGR集群/一些细节/MHA vs MGR谁更合适用在生产系统

MySQL benz 4个月前 (06-03) 28次浏览 0个评论 扫描二维码
文章目录[隐藏]

MHA vs MGR谁更合适用在生产系统

MHA vs MGR谁更合适用在生产系统

教程

MySQL 5.7 基于组复制(MySQL Group Replication)

细节

MGR的一些细节
MGR自增序列参数

总结

主要依赖MySQL的插件:group_replication.so。MySQL可能在5.7.20以后才有这个插件,所以建议安装5.7.20以上的版本。

MGR的特性

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

高容错性。只要不是大多数节点坏掉就可以继续工作,有自动检测机制,当不同节点产生资源争用冲突时,不会出现错误,按照先到者优先原则进行处理,并且内置了自动化脑裂防护机制;

高扩展性。节点的新增和移除都是自动的,新节点加入后,会自动从其他节点上同步状态,直到新节点和其他节点保持一致,如果某节点被移除了,其他节点自动更新组信息,自动维护新的组信息;

高灵活性。有单主模式和多主模式,单主模式下,会自动选主,所有更新操作都在主上进行;多主模式下,所有server都可以同时处理更新操作。

搭建MGR的基础结构要求和使用限制(重点)

基础结构要求:
1.引擎必须为innodb,因为需事务支持在commit时对各节点进行冲突检查;
2.每个表必须有主键,在进行事务冲突检测时需要利用主键值对比;
3.必须开启binlog且为row格式;
4.开启GTID,且主从状态信息存于表中(--master-info-repository=TABLE--relay-log-info-repository=TABLE),--log-slave-updates打开;
5.一致性检测设置--transaction-write-set-extraction=XXHASH64

使用限制:
1.RP和普通复制binlog校验不能共存,需设置--binlog-checksum=none
2.不支持gap lock(间隙锁),隔离级别需设置为read_committed;
3.不支持对表进行锁操作(lock /unlock table),不会发送到其他节点执行 ,影响需要对表进行加锁操作的情况,列入mysqldump全表备份恢复操作;
4.不支持serializable(序列化)隔离级别;
5.DDL语句不支持原子性,不能检测冲突,执行后需自行校验是否一;
6.多主模式下不支持外键,单主模式下支持外键;最多9个节点,超过9台无法加入集群。

搭建流程(单写模式)

所有MySQL
修改mysql.cnf

执行SQL

master MySQL

slave MySQL

搭建流程(多写模式)

只需要在mysql.cnf加上两行配置:

区分主从服务器

MGR区分主从服务器使用show variables like '%read_only%';查看read_only相关参数。如果是主服务器(youxi1),会显示如下:

如果是从服务器(youxi2)会显示如下:

参考

MGR集群搭建
MGR的搭建部署
MGR搭建以及性能测试


文章 MySQL MGR集群/一些细节/MHA vs MGR谁更合适用在生产系统 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!