# 第十八章 组复制

目录

18.1 组复制背景

18.1.1 复制技术

18.1.2 组复制用例

18.1.3 多主模式和单主模式

18.1.4 组复制服务

18.1.5 组复制插件架构

18.2 开始

18.2.1 单主模式部署组复制

18.2.2 本地部署组复制

18.3 要求和限制

18.3.1 组复制要求

18.3.2 组复制限制

18.4 监控组复制

18.4.1 GTID 和组复制

18.4.2 组复制服务器状态

18.4.3 复制_团体_成员表

18.4.4 复制_团体_成员_统计表

18.5 组复制操作

18.5.1 配置在线组

18.5.2 重启组

18.5.3 交易一致性保证

18.5.4 分布式恢复

18.5.5 支持 IPv6 以及混合 IPv6 和 IPv4 组

18.5.6 使用 MySQL Enterprise Backup 和 Group Replication

18.6 组复制安全

18.6.1 连接安全管理方法

18.6.2 使用安全套接字层 (SSL) 保护组通信连接

18.6.3 保护分布式恢复连接

18.6.4 组复制 IP 地址权限

18.7 组复制性能和故障排除

18.7.1 微调组通信线程

18.7.2 流量控制

18.7.3 单一共识领导者

18.7.4 消息压缩

18.7.5 消息分片

18.7.6 XCom 缓存管理

18.7.7对故障检测和网络划分的响应

18.7.8处理网络分区和法定人数丢失

18.8升级组复制

18.8.1在一个组中组合不同的成员版本

18.8.2组复制脱机升级

18.8.3组复制联机升级

18.9组复制系统变量

18.10常见问题

本章介绍MySQL组复制以及如何安装、配置和监视组。MySQL组复制使您能够创建弹性、高可用、容错的复制拓扑。

组可以在具有自动初选功能的单一初选模式下运行,一次只有一台服务器接受更新。或者,可以在多主模式下部署组,在这种模式下,所有服务器都可以接受更新,即使它们是同时发布的。

有一个内置的组成员资格服务,可以在任何给定时间点保持组视图的一致性,并可用于所有服务器。服务器可以离开并加入组,视图也会相应更新。有时服务器可能会意外地离开组,在这种情况下,故障检测机制会检测到这一点,并通知组视图已更改。这是全自动的。

组复制保证数据库服务持续可用。但是,重要的是要了解,如果其中一个组成员不可用,则必须使用连接器、负载平衡器、路由器或某种形式的中间件将连接到该组成员的客户端重定向或故障转移到组中的另一台服务器。组复制没有内置的方法来执行此操作。例如,请参见MySQL路由器8.0 (opens new window).

组复制作为MySQL服务器的插件提供。您可以按照本章中的说明在组中所需的每个服务器实例上配置插件,启动组,并监视和管理组。部署一组MySQL服务器实例的另一种方法是使用InnoDB Cluster。

提示

要部署多个MySQL实例,可以使用InnoDB集群 (opens new window)这使您能够轻松地在中管理一组MySQL服务器实例MySQL外壳 (opens new window).InnoDB Cluster将MySQL组复制包装在编程环境中,使您能够轻松部署MySQL实例群集以实现高可用性。此外,InnoDB集群与MySQL路由器 (opens new window),使您的应用程序能够连接到群集,而无需编写自己的故障切换过程。但是,对于不需要高可用性的类似用例,您可以使用InnoDB复制集 (opens new window).可以找到MySQL外壳的安装说明在这里 (opens new window).

本章的结构如下: