本文主要内容参考官方reference的内容。
一,在配置文件中添加组复制
server_id=1
#GTID模式打开。Global Transaction Identifier 全局事物标识
#一个GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或者主从不一致
gtid_mode=ON
enforce_gtid_consistency=ON
#这两个参数会将master.info和relay.info保存在表中
#master.info, relay.info为进行数据复制过程中产生信息
master_info_repository=TABLE
relay_log_info_repository=TABLE
#数据同步复制时候使用binlog二进制日志技术。binlog的相关配置
binlog_checksum=NONE
log_slave_updates=ON
log_bin=binlog
binlog_format=ROW
#以下内容为配组置复制
transaction_write_set_extraction=XXHASH64
#roup_name 的格式是UUID,可以在MySQL 中执行 select uuid(); 来获得一个
loose-group_replication_group_name=056dc8f1-3007-11e7-bcbe-f079598d6322
#启动的时候不自动启动组复制
loose-group_replication_start_on_boot=off
#本server所使用的与其他组员通信复制的端口
#如果每个server实例运行在不同的机器上,那么本地址端口官方建议为33061
loose-group_replication_local_address="127.0.0.1:33061"
#种子成员列表,就是server在加入组的时候,可以联络的其他组员。
#此选项不需要列出所有的组成员。需要加入组的server,只需要询问组中的一个成员即可加入组
#不支持在创建组的时候,同时加入多个成员,会引起竞争
#Warining, 组中首先启动的server,它是不使用这个选项的
loose-group_replication_group_seeds="127.0.0.1:33061,127.0.0.1:33071,127.0.0.1:33081"
#此选项ON在任何时候只能在一个server实例上使用。如果多个为ON,造成脑裂
#此选项,在group的启动server,构建启动组的时候,手动置为ON
#server启动后,通过命令行SET loose-group_replication_bootstrap_group=ON
loose-group_replication_bootstrap_group=off
二。启动首要Server并创建组
组复制机制,使用异步复制协议在分布式的集群实例中进行数据复制的。分布式恢复进程,依赖于名为“group_replication_recovery"的通道,而它正是用来在组成员当中传输事物。在此,需要配置正确的用户,基于组复制机制来建立组成员之间的直接复制通道。
因此,先创建一个具有replication_slave权限的用户
在初始sever里面,执行以下的命令构建用户并授权使用恢复通道
-- 设置以下操作不记录日志
set sql_log_bin=0;
create user rpl_user@'%';
grant replication slave on *.* to rpl_user@'%' identified by 'Abcd1234';
flush privileges;
set sql_log_bin=1;
--下面这一句可能过长,分开两行输入(第一行结束的时候,不要带;)
--使用change master to配置本server如果从其他组成员恢复数据时候,使用group_replication_recovery通道给定的凭证。
change master to master_user='rpl_user', master_password='Abcd1234'
for channel 'group_replication_recovery';
#用以下语句可以检查
select * from mysql.slave_master_info \G;
安装组复制插件
LINUX下面使用
install plugin group_replication soname 'group_replication.so';
windows下使用
install plugin group_replication soname 'group_replication.dll';
可以通过show plugins 命令检查是否安装成功
启动复制组
整个复制组只需要启动一次
set global group_replication_bootstrap_group=ON;
start group_replication;
set global group_replication_bootstrap_group=OFF;
启动成功后,可以通过以下语句检查是否第一个member加入了组中
select * from performance_schema.replication_group_members;
本文出自 “西伯利亚的嚎叫” 博客,请务必保留此出处http://arwoo.blog.51cto.com/11395639/1928378