MySQL Shell 8.4  /  MySQL InnoDB 集群

第 7 章 MySQL InnoDB 集群

MySQL InnoDB 集群为 MySQL 提供了完整的高可用性解决方案。通过使用 MySQL Shell 中包含的 AdminAPI,您可以轻松地配置和管理至少三个 MySQL 服务器实例组,以作为 InnoDB 集群运行。

InnoDB 集群中的每个 MySQL 服务器实例都运行 MySQL 组复制,该复制提供在 InnoDB 集群中复制数据的机制,并具有内置的故障转移功能。AdminAPI 无需直接在 InnoDB 集群中使用组复制,但有关更多信息,请参阅 组复制,其中详细解释了该机制。您还可以配置 InnoDB ClusterSet(请参阅 第 8 章,MySQL InnoDB ClusterSet),通过将主 InnoDB 集群与其自身的一个或多个副本链接到备用位置(例如不同的数据中心),为 InnoDB 集群部署提供灾难恢复能力。

MySQL Router 可以根据您部署的集群自动配置自身,将客户端应用程序透明地连接到服务器实例。如果服务器实例发生意外故障,集群会自动重新配置。在默认的单主模式下,InnoDB 集群具有单个读写服务器实例 - 主实例。多个辅助服务器实例是主实例的副本。如果主实例发生故障,则辅助实例会自动提升为主实例的角色。MySQL Router 会检测到这种情况,并将客户端应用程序转发到新的主实例。高级用户还可以将集群配置为具有多个主实例。

下图概述了这些技术如何协同工作

图 7.1 InnoDB 集群概述

Three MySQL servers are grouped together as a high availability cluster. One of the servers is the read/write primary instance, and the other two are read-only secondary instances. Group Replication is used to replicate data from the primary instance to the secondary instances. MySQL Router connects client applications (in this example, a MySQL Connector) to the primary instance.

重要

InnoDB 集群不支持 MySQL NDB 集群。NDB 集群依赖于 NDB 存储引擎以及 MySQL Server 8.4 未提供的许多特定于 NDB 集群的程序;NDB 仅作为 MySQL NDB 集群发行版的一部分提供。此外,MySQL Server 8.4 提供的 MySQL 服务器二进制文件(mysqld)不能与 NDB 集群一起使用。有关 MySQL NDB 集群的更多信息,请参阅 MySQL NDB 集群 8.4使用 InnoDB 的 MySQL 服务器与 NDB 集群的比较 提供了有关 InnoDBNDB 存储引擎之间区别的信息。