MGR群集搭建

环境

IP地址 主机名 数据库 端口号 Server_ID 操作系统
192.168.144.10 apenglinux-001.cn MySQL5.7.26 3306 100 CentOS7.5
192.168.144.20 apenglinux-002.cn MySQL5.7.26 3306 101 CentOS7.5
192.168.144.30 apenglinux-003.cn MySQL5.7.26 3306 102 CentOS7.5

single master 模式

  • 三台机作ip与主机名的映射关系
vim /etc/hosts   -- 加入以下内容
192.168.144.10 apenglinux-001.cn
192.168.144.20 apenglinux-002.cn
192.168.144.30 apenglinux-003.cn
  • 单主master主机为apenglinux-001.cn

    vim /etc/my.cnf      -- 加入以下内容
    server_id=100
    gtid_mode=on
    enforce_gtid_consistency=on
    transaction_write_set_extraction=XXHASH64
    log_bin=apenglinux
    binlog_checksum=none
    binlog_format=row
    log_slave_updates=on
    master_info_repository=table
    relay_log_info_repository=table
    loose_group_replication_group_name='70546c9a-5a52-46a4-84ee-141ca4359966'
    loose_group_replication_local_address='apenglinux-001.cn:10001'
    loose_group_replication_start_on_boot=off
    loose_group_replication_group_seeds='apenglinux-001.cn:10001,apenglinux-002.cn:10002,apenglinux-003.cn:10003'
    loose_group_replication_group_bootstrap_group=off
  • 重启mysqld
  • 连接mysql,到(apenglinux-001.cn)mysql里的操作如下
mysql> set sql_log_bin=off;
mysql> grant replication slave on *.* to repl@'192.168.144.%' identified by '123456';
mysql> flush privileges;
mysql> set sql_log_bin=on;
mysql> change master to master_user='repl',master_password='123456' for channel 'group_replication_recovery';
mysql> install plugin group_replication soname 'group_replication.so';
mysql> set global group_replication_bootstrap_group=on;
mysql> start group_replication;
mysql> set global group_replication_bootstrap_group=off;
mysql> select * from performance_schema.replication_group_members;     -- 以下是查询到的内容
+---------------------------+--------------------------------------+-------------------+-------------+--------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST       | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-------------------+-------------+--------------+
| group_replication_applier | 8ea873c2-8f71-11e9-bbb4-000c298347f1 | apenglinux-001.cn |        3306 | ONLINE       |
+---------------------------+--------------------------------------+-------------------+-------------+--------------+
  • 从服务器(apenglinux-002.cn)的配置

    vim /etc/my.cnf    --  跟 apenglinux-001.cn一样的配置,只需要修改以下两行
    server_id=101
    loose_group_replication_local_address='apenglinux-002.cn:10002'
    重启mysqld
    连接msyql,到mysql里的操作如下
    mysql> set sql_log_bin=off;
    mysql> grant replication slave on *.* to repl@'192.168.144.%' identified by '123456';
    mysql> flush privileges;
    mysql> set sql_log_bin=on;
    mysql> change master to master_user='repl',master_password='123456' for channel 'group_replication_recovery';
    mysql>  install plugin group_replication soname 'group_replication.so';
    mysql> set global group_replication_allow_local_disjoint_gtids_join=on;
    mysql> start group_replication;
    mysql> select * from performance_schema.replication_group_members;
    +---------------------------+--------------------------------------+-------------------+-------------+--------------+
    | CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST       | MEMBER_PORT | MEMBER_STATE |
    +---------------------------+--------------------------------------+-------------------+-------------+--------------+
    | group_replication_applier | 8ea873c2-8f71-11e9-bbb4-000c298347f1 | apenglinux-001.cn |        3306 | ONLINE       |
    | group_replication_applier | a049b503-8f72-11e9-ba4b-000c2906c8f7 | apenglinux-002.cn |        3306 | ONLINE       |
    +---------------------------+--------------------------------------+-------------------+-------------+--------------+
  • 从服务器apenglinux-003.cn的配置(与apenglinux-002.cn一样的配置),下面是要修改的
vim /etc/my.cnf
server_id=102
loose_group_replication_local_address='apenglinux-003.cn:10003'

mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------------+-------------+--------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST       | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-------------------+-------------+--------------+
| group_replication_applier | 8ea873c2-8f71-11e9-bbb4-000c298347f1 | apenglinux-001.cn |        3306 | ONLINE       |
| group_replication_applier | a049b503-8f72-11e9-ba4b-000c2906c8f7 | apenglinux-002.cn |        3306 | ONLINE       |
| group_replication_applier | d9fd5ea2-8f73-11e9-8f3b-000c29096feb | apenglinux-003.cn |        3306 | ONLINE       |
+---------------------------+--------------------------------------+-------------------+-------------+--------------+
  • 查看单主模式的主节点(所有的节点都可以查看)
    mysql> show global status like '%primary%';
    +----------------------------------+--------------------------------------+
    | Variable_name                    | Value                                |
    +----------------------------------+--------------------------------------+
    | group_replication_primary_member | 8ea873c2-8f71-11e9-bbb4-000c298347f1 |
    +----------------------------------+--------------------------------------+

MGR的多主模式

在 apenglinux-001.cn主机上的设置:
停止MGR,关掉单主模式,开启多主模式,开启引导组,开启mgr,关闭引导组

mysql> stop group_replication;
mysql> set global group_replication_single_primary_mode=off;
mysql> set global group_replication_enforce_update_everywhere_checks=on;
mysql> set global group_replication_bootstrap_group=on;
mysql> start group_replication;
mysql> set global group_replication_bootstrap_group=off;

在apenglinux-002.cn,apenglinux-003.cn上的设置:
停止mgr,允许写入,加入组,关掉单主模式,开启多主模式,开启mgr

mysql> stop group_replication;
mysql> set global read_only=off,super_read_only=off;
mysql> set global group_replication_allow_local_disjoint_gtids_join=on;
mysql> set global group_replication_single_primary_mode=off;
mysql> set global group_replication_enforce_update_everywhere_checks=on;
mysql> start group_replication;

查看成员信息

mysql> select * from performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------------+-------------+--------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST       | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-------------------+-------------+--------------+
| group_replication_applier | 8ea873c2-8f71-11e9-bbb4-000c298347f1 | apenglinux-001.cn |        3306 | ONLINE       |
| group_replication_applier | a049b503-8f72-11e9-ba4b-000c2906c8f7 | apenglinux-002.cn |        3306 | ONLINE       |
| group_replication_applier | d9fd5ea2-8f73-11e9-8f3b-000c29096feb | apenglinux-003.cn |        3306 | ONLINE       |
+---------------------------+--------------------------------------+-------------------+-------------+--------------+