MySQL Shell 9.0  /  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 存储引擎以及许多特定于 NDB 集群的程序,而 MySQL Server 9.0 中没有提供这些程序;NDB 仅作为 MySQL NDB 集群发行版的一部分提供。此外,MySQL Server 9.0 附带的 MySQL 服务器二进制文件(mysqld)不能与 NDB 集群一起使用。有关 MySQL NDB 集群的更多信息,请参阅 MySQL NDB 集群 9.0使用 InnoDB 的 MySQL 服务器与 NDB 集群的比较 提供了有关 InnoDBNDB 存储引擎之间差异的信息。