MySQL 8.3 Reference Manual  /  InnoDB Cluster

第 23 章 InnoDB 集群

本章介绍 MySQL InnoDB 集群,它将 MySQL 技术结合起来,启用您部署和管理完整的集成高可用性解决方案 для MySQL。 本内容是 InnoDB 集群的高级概述,完整的文档,请参阅 MySQL InnoDB 集群

重要

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

InnoDB 集群由至少三个 MySQL 服务器实例组成,提供高可用性和扩展功能。InnoDB 集群使用以下 MySQL 技术:

  • MySQL Shell,这是一个高级客户端和代码编辑器 для MySQL。

  • MySQL 服务器和 组复制,它使一组 MySQL 实例提供高可用性。InnoDB 集群提供了一个易于使用的程序化方式来与组复制一起工作。

  • MySQL 路由器,是一个轻量级的中间件,提供了从应用程序到 InnoDB 集群的透明路由。

以下图表显示了这些技术如何一起工作:

图 23.1 InnoDB 集群概述

三个 MySQL 服务器实例组成高可用性集群。其中一个服务器是读写主实例,另外两个是只读次要实例。组复制用于从主实例复制数据到次要实例。MySQL 路由器将客户端应用程序(在本例中是 MySQL 连接器)连接到主实例。

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

您可以使用 AdminAPI 工作与 InnoDB 集群,作为 MySQL Shell 的一部分提供。AdminAPI 在 JavaScript 和 Python 中可用,非常适合脚本和自动化 MySQL 部署以实现高可用性和可扩展性。使用 MySQL Shell 的 AdminAPI,您可以避免手动配置多个实例。相反,AdminAPI 提供了一个现代化的界面来设置和管理 MySQL 实例集,并使您可以从一个中心工具中 provision、管理和监控您的部署。

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

InnoDB 集群支持 MySQL 克隆,它使您可以简单地 provision 实例。在过去,要 provision 新实例加入一组 MySQL 实例,您需要手动传输事务到加入的实例。这可能涉及到文件复制、手动复制等。使用 InnoDB 集群,您可以简单地 添加实例 到集群中,它将自动 provision。

类似地,InnoDB 集群紧密集成与 MySQL 路由器,您可以使用 AdminAPI 将它们一起使用。MySQL 路由器可以根据 InnoDB 集群自动配置自己,以称为 引导 的过程,从而消除了手动配置路由的需要。然后,MySQL 路由器将透明地将客户端应用程序连接到 InnoDB 集群,为客户端连接提供路由和负载均衡。此集成还使您可以使用 AdminAPI 管理 MySQL 路由器 bootstrapped Against InnoDB 集群的一些方面。InnoDB 集群状态信息包括关于 MySQL 路由器 bootstrapped Against 集群的详细信息。操作使您可以 创建 MySQL 路由器用户 在集群级别,以便与 bootstrapped Against 集群的 MySQL 路由器一起工作等。

有关这些技术的更多信息,请参阅用户文档中的链接描述。此外,还有 AdminAPI 方法的开发者文档,在 MySQL Shell JavaScript API 参考或 MySQL Shell Python API 参考中可用,来自 连接器和 API