介绍
MySQL Group Replication(简称MGR)是MySQL官方于2016年12月推出的一个全新的高可用与高扩展的解决方案。MySQL Group Replication提供了高可用、高扩展、高可靠的MySQL集群服务
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
部署MGR集群
1.准备三台mysql,三台都设置hostname和ip映射
vim /etc/hosts
输入以下
192.168.100.10 master
192.168.100.20 slave1
192.168.100.30 slave2
2.配置master主配置文件
vim /etc/my.cnf
添加以下 ##红色部分修改组名和自己主机名
server_id=100 #服务ID
gtid_mode=ON #全局事务
enforce_gtid_consistency=ON #强制GTID的一致性
master_info_repository=TABLE #将master.info元数据保存在系统表中
relay_log_info_repository=TABLE #将relay.info元数据保存在系统表中
binlog_checksum=NONE #禁用二进制日志事件校验
log_slave_updates=ON #级联复制
log_bin=binlog #开启二进制日志记录
binlog_format=ROW #以行的格式记录
3.transaction_write_set_extraction=XXHASH64 #使用哈希算法将其编码为散列
loose-group_replication_group_name='ce9be252-2b71-11e6-b8f4-00212844f856' #加入的组名
loose-group_replication_start_on_boot=off #不自动启用组复制集群
loose-group_replication_local_address='cong11:33061'
#以本机端口33061接受来自组中成员的传入连接
loose-group_replication_group_seeds='cong11:33061,cong12:33061,cong13:33061'
#组中成员访问表
loose-group_replication_bootstrap_group=off #不启用引导组
Uuidgen 可以自动生成组名
Systemctl restart mysqld ##重启
3,授权账户
进入mysql里
mysql> set SQL_LOG_BIN=0; #停掉日志记录
mysql> grant replication slave on *.* to repl@' 192.168.1.%' identified by '123456';
mysql> flush privileges;
mysql> set SQL_LOG_BIN&