组复制使您可以创建具有冗余的容错系统,通过将系统状态复制到一组服务器上。即使一些服务器随后失败,只要不是所有或大多数,系统仍然可用。在服务器失败的情况下,组可能会降低性能或可扩展性,但仍然可用。服务器故障是独立的和独立的。它们由一个组成员服务跟踪,该服务依赖于一个分布式故障检测器,可以在任何服务器离开组时发出信号,无论是自愿还是由于意外停止。有一个分布式恢复过程,以确保当服务器加入组时,它们将自动更新。没有服务器故障转移的需要,并且多源更新的性质确保即使单个服务器故障,也不会阻止更新。总之,MySQL 组复制保证数据库服务的连续可用性。
需要注意的是,尽管数据库服务是可用的,但是在服务器意外退出的情况下,连接到它的客户端必须被重定向或故障转移到不同的服务器。这不是组复制尝试解决的问题。连接器、负载均衡器、路由器或某种形式的中间件更适合处理这个问题。例如,参见 MySQL 路由器 8.2。
总之,MySQL 组复制提供了高度可用的、高度弹性的、可靠的 MySQL 服务。
Tip
要部署多个 MySQL 实例,可以使用 InnoDB 集群,它使您可以轻松地管理一组 MySQL 服务器实例,以实现高可用性。在noDB 集群将 MySQL 组复制包装在一个程序化环境中,使您可以轻松部署一组 MySQL 实例以实现高可用性。此外,InnoDB 集群还与 MySQL 路由器无缝集成,使您的应用程序可以连接到集群,而不需要编写自己的故障转移过程。对于不需要高可用性的相似用例,可以使用 InnoDB 复制集。MySQL Shell 的安装说明可以在 这里找到。