关于mysql:MySQL80轻松搞定GTID组复制

32次阅读

共计 1471 个字符,预计需要花费 4 分钟才能阅读完成。

前言

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

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

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

主从复制技术仅解决了数据同步的问题 ,如果主服务器宕机,意味着数据库管理员须要染指,利用零碎可能须要批改数据库连贯地址或者重启能力实现。

组复制只有不是大多数节点坏掉就能够持续工作 ,有自动检测机制,当不同节点产生资源争用抵触时,不会呈现谬误,依照先到者优先准则进行解决。比方,3 台服务器的集群,容许其中 1 台宕机。

组复制工作模式:

  • 单主模式,其中只有一个服务器承受更新,单主是零碎主动选举进去的。
  • 多主模式,其中所有服务器都能够承受更新。

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

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

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

上面介绍在装置好 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

正文完
 0