一、MGR  

1、MGR的作用和特点  

1)MGR的作用  

 对Mysql数据库进行故障冗余

 保证数据库数据实时性和一致性

2)特点

 高一致性:保证数据实时同步

 高容错性:部署MGR不能低于三个节点,节点数量必须是单数

 可扩展性强:不停止复制组热添加和移除Mysql节点

 灵活性强:动态扩展和收缩

3)配置MGR注意事项  

 必须开启GTID复制

 数据库引擎必须是innodb

 必须在5.7.17数据库版本后使用

 MGR最多支持9个节点

2、MGR支持的模式  

1)单主模式  

 一个主Mysql多个从Mysql

 主Mysql写入数据从Mysql复制保证数据的完整性

2)多主模式  

 MGR组Mysql都是主节点

 任何一个节点数据发生改变其他节点同步复制

二、配置单主和单主复制

1、配置单主复制  

1)添加MGR组件

[root@centos01 ~]# mysql -uroot -ppwd@123 -e "install plugin group_replication soname 'group_replication.so';"

2)创建复制账户

[root@centos01 ~]# mysql -uroot -ppwd@123
mysql> set sql_log_bin=0;
mysql> create user 'repl'@'%' identified by 'pwd@123';
mysql> create user 'repl'@'localhost' identified by 'pwd@123';
mysql> create user 'repl'@'127.0.0.1' identified by 'pwd@123';
mysql> grant replication slave,replication client on *.* to 'repl'@'%';
mysql> grant replication slave,replication client on *.* to 'repl'@'localhost';
mysql> grant replication slave,replication client on *.* to 'repl'@'127.0.0.1';
mysql> set sql_log_bin=1;

3)查询创建的用户

mysql> select host,user from mysql.user;

2、配置主Mysql节点设置为引导节点  

1)登录Mysql配置数据复制 

[root@centos01 ~]# mysql -uroot -ppwd@123
mysql> change master to master_user='repl',master_password='pwd@123' for channel 'group_replication_recovery';

2)配置主Mysql为引导节点

mysql> set global group_replication_bootstrap_group=on;

3)启动复制组

mysql> start group_replication;

4)查看节点状态

mysql> select * from performance_schema.replication_group_members;

5)关闭引导节点等待从节点连接 

mysql> set global group_replication_bootstrap_group=off;

3、配置从节点加入MGR组  

1)登录创建复制

[root@centos02 ~]# mysql -uroot -ppwd@123
mysql> reset master;
mysql>change master to master_user='repl',master_password='pwd@123' for channel 'group_replication_recovery';

2)启动复制组功能

mysql> start group_replication;

3)将从节点设置为只读节点 

mysql> set global read_only=1;
mysql> set global super_read_only=1;

4、单主模式和多主模式切换

1)切换到单主模式

[root@centos01 ~]# mysql -uroot -ppwd@123
mysql> select group_replication_switch_to_single_primary_mode();

2)查看配置的一主多从模式

mysql> select * from performance_schema.replication_group_members;

3)修改为多主模式 

mysql> select group_replication_switch_to_multi_primary_mode();