MySQL8.0轻松搞定GTID组复制

来源:这里教程网 时间:2026-03-01 16:22:05 作者:

前言

之前文章介绍了MySQL8.0主从复制,以及衍生出来的主主复制(可点如下链接查看)。

  • MySQL8.0轻松搞定GTID主从复制

  • MySQL8.0轻松搞定GTID主主复制

    今天来聊一聊MySQL8.0的组复制。

     

    主从复制技术仅解决了数据同步的问题 ,如果主服务器宕机,意味着数据库管理员需要介入,应用系统可能需要修改数据库连接地址或者重启才能实现。

     

    组复制只要不是大多数节点坏掉就可以继续工作 ,有自动检测机制,当不同节点产生资源争用冲突时,不会出现错误,按照先到者优先原则进行处理。 比如,3台服务器的集群,允许其中1台宕机。

     

    组复制工作模式:

  • 单主模式,其中只有一个服务器接受更新,单主是系统自动选举出来的。

  • 多主模式,其中所有服务器都可以接受更新。

    昆仑数据库存储节点的单个分片,采用的是单主模式的组复制。

     

    在单主模式下,当主节点宕机时,将自动选择新的主节点,选举方法如下图所示:

     

    在多主模式下,每个节点都可以写数据,因此不存在节点选举,如果组成员发生故障,业务切换节点即可。如下图所示:

     

     

    下面介绍在安装好MySQL8的centos8虚拟机上,实现单主模式组复制,以及多主模式组复制的过程:

     

    虚拟机列表:

    G1:   192.168.25.150G2:   192.168.25.151G3:   192.168.25.152

    一、G1配置

    1.1.  修改主机名,并重启生效

    vim /etc/hosts192.168.25.150         centos8-0192.168.25.151         centos8-1192.168.25.152         centos8-2

    1.2.  关闭防火墙并设置开机不启动

    systemctl stop firewalld.servicesystemctl disable firewalld.service

    1.3.  关闭Selinux并设置开机不启动

    setenforce 0vim /etc/selinux/configSELINUX=disabled

    1.4.  删除auto.cnf,重启自动生成server-uuid

    rm -f /var/lib/mysql/auto.cnf

    1.5.  设置配置文件

    vim /etc/my.cnf# 添加[mysqld]#binlog默认已经打开,不用设置#服务器ID,每台机器不能重复server_id=1#全局事物标识GTID开关gtid_mode=>

    1.6.  重启MySQL

    systemctl restart mysqld.service

    1.7.  登录mysql,添加用于同步的数据库账号

    mysql> set sql_log_bin=0;  #不记录二进制日志mysql> create user 'kunlun'@'%' identified by '123456';mysql> grant replication slave on *.* to 'kunlun'@'%';mysql> flush privileges;mysql> set sql_log_bin=1;mysql> change master to master_user='kunlun', master_password='123456' for channel 'group_replication_recovery';

      

    1.8.  启动组复制功能   

    ## 第一个主需要打开bootstrap_group,启动复制服务后,再关闭mysql> set global group_replication_bootstrap_group=on; mysql> start group_replication;mysql> set global group_replication_bootstrap_group=off;
     
    1.9.  查看组员情况
    mysql> select * from performance_schema.replication_group_members;+-------------+-------------+--------------+-------------+| MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE |+-------------+-------------+--------------+-------------+| centos8-   |        3306 | ONLINE       | PRIMARY     |+-------------+-------------+--------------+-------------+
     

    二、G2,G3配置

    重复1.1-1.9步骤

    步骤1.5配置文件, G2,G3分别修改如下

    server_id=2group_replication_local_address="192.168.25.151:13306"server_id=3group_replication_local_address="192.168.25.152:13306"

    步骤1.8只需启动复制服务

    mysql>start group_replication;

     

    步骤1.9查看组员情况
    mysql> select * from performance_schema.replication_group_members;+-------------+-------------+--------------+-------------+| MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE |+-------------+-------------+--------------+-------------+| centos8-   |        3306 | ONLINE       | PRIMARY     || centos8-1   |        3306 | ONLINE       | SECONDARY   || centos8-2   |        3306 | ONLINE       | SECONDARY   |+-------------+-------------+--------------+-------------+
    至此,单主模式的组复制已经搭建成功。

    三、多主模式配置

    3.1.  设置配置文件,G1,G2,G3增加两项配置

    vim /etc/my.cnfgroup_replication_single_primary_mode=offgroup_replication_enforce_update_everywhere_checks=on

    3.2.  重启MySQ L

    systemctl restartmysqld.service

    3.3.  G1启动组复制功能   
    ## 第一个主需要打开bootstrap_group,启动复制服务后,再关闭mysql> set global group_replication_bootstrap_group=on; mysql> start group_replication;mysql> set global group_replication_bootstrap_group=off;

    3.4.  G2,G3只需启动复制服务

    mysql>start group_replication;
    3.5.  查看组员情况
    mysql> select * from performance_schema.replication_group_members;+-------------+-------------+--------------+-------------+| MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE |+-------------+-------------+--------------+-------------+| centos8-   |        3306 | ONLINE       | PRIMARY     || centos8-1   |        3306 | ONLINE       | PRIMARY     || centos8-2   |        3306 | ONLINE       | PRIMARY     |+-------------+-------------+--------------+-------------+
     

    至此,多主模式的组复制已经搭建成功。

    THE END

  • 相关推荐