搭建MySQL集群--MGR

一、MGR 介绍

MGR 集群简介

MySQL Group Replication(简称 MGR)是 MySQL 官方于 2016 年 12 月推出的一个全新的高
可用与高扩展的解决方案。MySQL 组复制提供了高可用、高扩展、高可靠的 MySQL 集群服务

MGR 的特点

1、高一致性,基于原生复制及 paxos 协议的 组复制技术 ,并以插件的方式提供,提供一致数据安全 保证;
2、高容错性,只要不是大多数节点坏掉就可以继续工作,有自动检测机制,当不同节点产生资源争 用冲突时,不会出现错误,按照先到者优先原则进行处理,并且内置了自动化脑裂防护机制;
3、高扩展性,节点的新增和移除都是自动的,新节点加入后,会自动从其他节点上同步状态,直到 新节点和其他节点保持一致,如果某节点被移除了,其他节点自动更新组信息,自动维护新的组信息;
4、高灵活性,有单主模式和多主模式,单主模式下,会自动选主,所有更新操作都在主上进行;多 主模式下,所有 server 都可以同时处理更新操作。
MGR 是 MySQL 数据库未来发展的一个重要方向。
小结:高一致性,高容错性,高扩展性,高灵活性

MGR 基础结构要求

1)引擎必须为 innodb,因为需事务支持在 commit 时对各节点进行冲突检查
2)每个表必须有主键,在进行事务冲突检测时需要利用主键值对比
3)必须开启 binlog 且为 row 格式
4)开启 GTID,且主从状态信息存于表中(--master-info-repository=TABLE 、--relay-log
info-repository=TABLE),--log-slave-updates 打开
什么是 GTID?
GTID(Global Transaction ID)是对于一个 已提交事务的编号 ,并且是一个 全局唯一的编号
GTID 实际上是由 UUID+TID 组成的。其中 UUID 是一个 MySQL 实例的唯一标识。TID 代表了该实例
上已经提交的事务数量,并且随着事务提交单递增。下面是一个 GTID 的具体形式
3E11FA47-71CA-11E1-9E33-C80AA9429562:23
5)一致性检测设置--transaction-write-set-extraction=XXHASH64

MGR 使用限制:

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

二、署 MGR 集群

环境准备

关闭所以服务器防护墙和slinux

systemctl stop firewalld && setenforce 0

数据库服务器规划

序号    
IP 地址
主机名
数据库     
端口号
Server ID
操作系统
1
192.168.0.63
xuegod63
MySQL-5.7.24  
3306
100
CentOS 7.6
2 192.168.0.64
xuegod64
MySQL-5.7.24
3306
101
CentOS 7.6
3 192.168.0.65
xuegod65
MySQL-5.7.24
3306 
102
CentOS 7.6

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值