MySQL8.0轻松搞定GTID组复制

协作狂
• 阅读 892

前言

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

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

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

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

组复制工作模式:

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

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

在单主模式下,当主节点宕机时,将自动选择新的主节点,选举方法如下图所示:
MySQL8.0轻松搞定GTID组复制

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

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

虚拟机列表:

G1: 192.168.25.150

**
一、G1配置**

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

vim /etc/hosts

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

systemctl stop firewalld.service

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

setenforce 0

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

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

1.5. 设置配置文件

vim /etc/my.cnf

1.6. 重启MySQL

systemctl restart mysqld.service

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

`mysql> set sql_log_bin=0; #不记录二进制日志
`

1.8. 启动组复制功能

## 第一个主需要打开bootstrap_group,启动复制服务后,再关闭

1.9. 查看组员情况

mysql> select * from performance_schema.replication_group_members;

二、G2,G3配置

重复1.1-1.9步骤

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

server_id=2

步骤1.8只需启动复制服务

mysql>start group_replication;

步骤1.9查看组员情况

mysql> select * from performance_schema.replication_group_members;

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

三、多主模式配置

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

vim /etc/my.cnf

3.2. 重启MySQL

systemctl restartmysqld.service

3.3.G1启动组复制功能

## 第一个主需要打开bootstrap_group,启动复制服务后,再关闭

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

mysql>start group_replication;

3.5.查看组员情况

mysql> select * from performance_schema.replication_group_members;

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

KunlunDB项目已开源

【GitHub:】
https://github.com/zettadb

【Gitee:】
https://gitee.com/zettadb

END

点赞
收藏
评论区
推荐文章
灯灯灯灯 灯灯灯灯
4年前
一篇文带你彻底解决mysql的主从复制延迟问题
前言​在之前我们已经讲解了一主一从,双主双从的mysql集群搭建,在单机应用的时候看起来没有问题,但是在企业的生产环境中,在很多情况下都会有复制延迟的问题。所以我来了!!!​主从复制的原理我们在此处就不再赘述了,之前已经讲过了,这是一个老生常谈的问题,原理性质的也几乎在面试中问烂了,这些原理性质的东西并不是很难,但是你需要注意了,主从复制的延迟问题会成为
Peter20 Peter20
4年前
redis的三种集群方式
redis有三种集群方式:主从复制,哨兵模式和集群。1.主从复制主从复制原理:从服务器连接主服务器,发送SYNC命令;主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令;主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令;从服务器收到
Wesley13 Wesley13
4年前
mysql主主复制+keepalived故障切换
服务器规划:mysql1:192.168.2.153mysql2:192.168.2.154mysqlvip:192.168.2.157主主复制:创建复制账号:主库:mysqlgrantreplicationslaveon_._torepl@'192.168.2.%'identifiedby'slave';
Wesley13 Wesley13
4年前
MySQL主主复制(双主复制)配置过程介绍
一、修改配置文件my.cnf服务器A(172.16.16.70)配置如下server\_id70socket/tmp/mysql.sockinnodb\_buffer\_pool\_size10Gcharactersetserverutf8log\_binmysqlbinexpire\_l
Wesley13 Wesley13
4年前
mysql 主从复制
mysql主从复制(超简单)怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下:1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码2、修改主服务器master:  vi/etc/my.cnf
Wesley13 Wesley13
4年前
MySQL 5.7 基于 GTID 的主从复制实践
MySQL5.7基于GTID的主从复制实践PostedbyMikeon20170703运维之美(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.hilinux.com%2F)Home
Wesley13 Wesley13
4年前
MySQL8.0关于caching_sha2_password Plugin的一个Bug
今天在调试使用ansible进行标准化安装MySQL8.0时,发现关于caching\_sha2\_passwordplugin的一个bug。在搭建主从复制时,按照手册说明(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2
Stella981 Stella981
4年前
Linux Centos下MySQL主从Replication同步配置(一主一从)
MySQL主从复制概念MySQL主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。 !(https://img2018.cnblogs.c
Wesley13 Wesley13
4年前
mysql5.7.26 基于GTID的主从复制环境搭建
mysql5.7.26基于GTID的主从复制环境搭建时间:2019090616:10:21    阅读:20    评论:0    收藏:0    \点我收藏\标签:connect(https://www.oschina.net/action/GoToLink?
Wesley13 Wesley13
4年前
mysql基于GTID的主从复制
相对传统基于binlog位置的方法来说,gtid让配置主从更加方便从库提升为主时比较方便安装MySQL5.7(此步骤略)主库配置!(https://oscimg.oschina.net/oscnet/db5cefb4326d19a0feb402cbeee53ac74b6.jpg)!(https://oscimg.oschina.
3A网络 3A网络
3年前
详谈 MySQL 8.0 原子 DDL 原理
详谈MySQL8.0原子DDL原理背景MySQL5.7的字典信息保存在非事务表中,并且存放在不同的文件中(.FRM,.PAR,.OPT,.TRN,.TRG等)。所有DDL操作都不是CrashSafe,而且对于组合DDL(ALTER多个表)会出现有的成功有的失败的情况,而不是总体失败。这样主从复制就出现了问题,也导致基于复制的高可