文档首页
MySQL 8.4 参考手册
相关文档 下载本手册

MySQL 8.4 参考手册  /  ...  /  组复制用例

20.1.2 组复制用例

组复制允许您通过将系统状态复制到一组服务器来创建具有冗余性的容错系统。即使其中一些服务器随后发生故障,只要不是全部或大多数服务器发生故障,系统仍然可用。根据故障服务器的数量,组的性能或可扩展性可能会下降,但仍然可用。服务器故障是隔离且独立的。它们由组成员资格服务跟踪,该服务依赖于分布式故障检测器,该检测器能够在任何服务器离开组时发出信号,无论是自愿离开还是由于意外停止。有一个分布式恢复过程,以确保当服务器加入组时,它们会自动更新到最新状态。无需服务器故障转移,并且多源更新无处不在的特性确保了即使在单个服务器发生故障的情况下也不会阻塞更新。总而言之,MySQL 组复制保证了数据库服务的持续可用性。

重要的是要了解,尽管数据库服务可用,但在意外服务器退出时,必须将连接到该服务器的那些客户端重定向或故障转移到其他服务器。这不是组复制试图解决的问题。连接器、负载均衡器、路由器或某种形式的中间件更适合处理此问题。例如,请参阅 MySQL Router 8.4

总而言之,MySQL 组复制提供了一个高可用性、高弹性、可靠的 MySQL 服务。

提示

要部署多个 MySQL 实例,可以使用 InnoDB 集群,它使您能够在 MySQL Shell 中轻松管理一组 MySQL 服务器实例。InnoDB 集群将 MySQL 组复制包装在一个编程环境中,使您能够轻松部署 MySQL 实例集群以实现高可用性。此外,InnoDB 集群与 MySQL Router 无缝衔接,这使您的应用程序能够连接到集群,而无需编写自己的故障转移过程。但是,对于不需要高可用性的类似用例,您可以使用 InnoDB 副本集。有关 MySQL Shell 的安装说明,请参见此处

用例示例

以下示例是组复制的典型用例。

  • 弹性复制 - 需要非常灵活的复制基础架构的环境,在这种环境中,服务器的数量必须动态地增加或减少,并且副作用尽可能少。例如,云数据库服务。

  • 高可用性分片 - 分片是实现写扩展的一种流行方法。使用 MySQL 组复制来实现高可用性分片,其中每个分片映射到一个复制组。

  • 异步源-副本复制的替代方案 - 在某些情况下,使用单个源服务器会使其成为单点故障。在某些情况下,写入整个组可能会更具可扩展性。

  • 自治系统 - 此外,您可以纯粹为了复制协议中内置的自动化(在本节和前几节中已介绍)而部署 MySQL 组复制。