第20章 组复制
目录
本章解释了MySQL 8.4中的Group Replication,以及如何安装、配置和监控组。MySQL Group Replication使您可以创建弹性、高可用、容错的复制拓扑结构。
组可以在单主模式下运行,自动选择主服务器,其中只有一个服务器可以接受更新。或者,组也可以部署在多主模式下,每个服务器都可以接受更新,即使它们是并发执行的。
有一个内置的组成员服务,它保持组的视图一致和可用状态。在任何给定的时间点上,所有服务器都可以访问该视图。服务器可以离开或加入组,并且视图将相应地更新。有时,服务器可能会意外离开组,在这种情况下,故障检测机制会检测到这个变化并通知组,该视图已经改变。这一切都是自动的。
Group Replication 确保数据库服务始终可用。但是,如果组成员之一变得不可用,那么连接到该组成员的客户端必须被重定向或故障转移到组中的另一个服务器,使用连接器、负载均衡器、路由器或某种形式的中间件。Group Replication 没有内置的方法来实现这个操作。例如,请见 MySQL Router 8.4。
Group Replication 作为 MySQL Server 的插件提供。您可以按照本章中的指令在每个服务器实例上配置插件,启动组,并监控和管理组。另一种部署多个 MySQL 服务器实例的方法是使用 InnoDB 集群。
要部署多个MySQL实例,可以使用InnoDB集群,它使您可以轻松地管理一组MySQL服务器实例在MySQL Shell中。 InnoDB集群将MySQL Group Replication包装在一个程序化环境中,使您可以轻松部署MySQL实例集群以实现高可用性。此外,InnoDB集群与MySQL Router无缝接口,使您的应用程序可以连接到集群而不需要编写自己的故障转移过程。对于类似的用例,但不需要高可用性,可以使用InnoDB ReplicaSet。MySQL Shell安装指南可以在这里找到。
本章结构如下:
-
第20.1节,“Group Replication 背景” 对群组和 Group Replication 的工作原理进行了介绍。
-
第20.2节,“Getting Started” 解释如何配置多个 MySQL 服务器实例以创建一个群组。
-
第20.3节,“Requirements and Limitations” 解释 Group Replication 的架构和设置要求和限制。
-
第20.4节,“Monitoring Group Replication” 解释如何监控一个群组。
-
第20.5节,“Group Replication Operations” 解释如何与一个群组进行交互。
-
第20.6节,“Group Replication Security” 解释如何保护一个群组。
-
第20.7节,“Group Replication Performance and Troubleshooting” 解释如何优化一个群组的性能。
-
第20.8节,“Upgrading Group Replication” 解释如何升级一个群组。
-
组复制变量:第20.9节,“组复制变量”是组复制特定的系统变量参考。
-
常见问题:第20.10节,“常见问题”提供了关于部署和操作组复制的技术问题答案。