MySQL 8.4 参考手册  /  InnoDB 集群

第 23 章 InnoDB 集群

本章介绍了 MySQL InnoDB 集群,它结合了 MySQL 技术,使您能够部署和管理一个完整的集成 MySQL 高可用性解决方案。本内容是对 InnoDB 集群的高级概述,完整文档,请参阅 MySQL InnoDB 集群

重要

InnoDB 集群不支持 MySQL NDB 集群。有关 MySQL NDB 集群的更多信息,请参阅 第 25 章,MySQL NDB 集群 8.4第 25.2.6 节,“使用 InnoDB 的 MySQL 服务器与 NDB 集群的比较”

InnoDB 集群至少包含三个 MySQL 服务器实例,它提供了高可用性和扩展功能。InnoDB 集群使用以下 MySQL 技术

  • MySQL Shell,它是 MySQL 的高级客户端和代码编辑器。

  • MySQL 服务器和 组复制,它使一组 MySQL 实例能够提供高可用性。InnoDB 集群提供了一种替代的、易于使用的编程方式来使用组复制。

  • MySQL 路由器,一种轻量级中间件,在您的应用程序和 InnoDB 集群之间提供透明的路由。

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

图 23.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.

基于 MySQL 的 组复制,提供了诸如自动成员资格管理、容错、自动故障转移等功能。InnoDB 集群通常以单主模式运行,具有一个主实例(读写)和多个从实例(只读)。高级用户还可以利用 多主 模式,其中所有实例都是主实例。您甚至可以在 InnoDB 集群在线的情况下更改集群的拓扑结构,以确保最高的可用性。

您可以使用 AdminAPI 与 InnoDB 集群交互,该 API 作为 MySQL Shell 的一部分提供。AdminAPI 可在 JavaScript 和 Python 中使用,非常适合编写脚本和自动化 MySQL 部署,以实现高可用性和可扩展性。通过使用 MySQL Shell 的 AdminAPI,您可以避免手动配置许多实例的需要。相反,AdminAPI 提供了一个有效的现代界面,用于管理 MySQL 实例集,并使您能够从一个中心工具来配置、管理和监控您的部署。

要开始使用 InnoDB 集群,您需要 下载安装 MySQL Shell。您需要一些安装了 MySQL 服务器实例的主机 安装,并且您也可以 安装 MySQL 路由器。

InnoDB 集群支持 MySQL 克隆,它使您能够简单地配置实例。在过去,要配置一个新的实例,在它加入一组 MySQL 实例之前,您需要以某种方式手动将事务传输到加入的实例。这可能涉及创建文件副本、手动复制它们等。使用 InnoDB 集群,您可以简单地 将一个实例 添加到集群中,它会自动配置。

同样,InnoDB 集群与 MySQL 路由器 紧密集成,您可以使用 AdminAPI 来 一起使用 它们。MySQL 路由器可以根据 InnoDB 集群自动配置自身,在称为 引导 的过程中,这样您就不必手动配置路由。然后,MySQL 路由器将客户端应用程序透明地连接到 InnoDB 集群,为客户端连接提供路由和负载均衡。这种集成还使您能够使用 AdminAPI 管理针对 InnoDB 集群引导的 MySQL 路由器的某些方面。InnoDB 集群状态信息包含有关针对集群引导的 MySQL 路由器的详细信息。操作使您能够 在集群级别创建 MySQL 路由器用户,以使用针对集群引导的 MySQL 路由器,等等。

有关这些技术的更多信息,请参阅描述中链接的用户文档。除了本用户文档外,还有所有 AdminAPI 方法的开发人员文档,在 MySQL Shell JavaScript API 参考或 MySQL Shell Python API 参考中,可从 连接器和 API 获取。