第23章 InnoDB 集群
本章介绍MySQL InnoDB集群,它结合了MySQL技术,允许您部署并管理一个完整的集成高可用性解决方案。对于详细文档,请参阅MySQL InnoDB集群。
InnoDB集群不提供对MySQL NDB集群的支持。有关MySQL NDB集群的更多信息,请参阅第25章,MySQL NDB集群 8.4和第25.2.6节,“MySQL Server 使用 InnoDB 与 NDB 集群的比较”。
InnoDB集群由至少三个MySQL Server实例组成,并提供高可用性和扩展功能。InnoDB集群使用以下MySQL技术:
-
MySQL Shell,这是一个高级的客户端和代码编辑器,用于MySQL。
-
MySQL Server,以及Group Replication,它使得一组MySQL实例能够提供高可用性。InnoDB Cluster 提供了一个易于使用的编程方式来工作与Group Replication。
-
MySQL Router,是一个轻量级的中间件,它提供了从应用程序到InnoDB Cluster之间的透明路由。
以下是这些技术如何协同工作的概览图:
基于MySQL的组复制构建,提供了自动成员管理、容错性、自动故障转移等功能。一个InnoDB集群通常以单主模式运行,有一个主要实例(读写)和多个次要实例(只读)。高级用户还可以利用多主模式,其中所有实例都是主实例。您甚至可以在InnoDB集群在线时更改其拓扑结构,以确保最高的可用性。
使用AdminAPI与InnoDB集群进行工作,AdminAPI作为MySQL Shell的一部分提供。AdminAPI支持JavaScript和Python,并且非常适合脚本化和自动化部署MySQL以实现高可用性和扩展性。通过使用MySQL Shell的AdminAPI,您可以避免手动配置多个实例的需要,而是提供了一个现代化的接口来管理MySQL实例集合,从而能够从一个中心工具中进行部署、管理和监控您的部署。
要开始使用InnoDB集群,您需要下载并安装MySQL Shell。您还需要一些主机上有MySQL Server实例的已安装,并且可以安装MySQL Router。
InnoDB 集群支持MySQL 克隆功能,这使您可以轻松地部署实例。在过去,要在一组 MySQL 实例中添加一个新实例之前,您需要手动将事务转移给加入的实例。这可能涉及到复制文件、手动复制等操作。使用 InnoDB 集群,您可以简单地添加一个实例到集群中,它将自动部署。
InnoDB 集群与MySQL Router紧密集成,您可以使用 AdminAPI 来管理它们。MySQL Router 可以根据 InnoDB 集群的配置自动配置自己,这个过程称为引导,这减少了您需要手动配置路由的需求。MySQL Router 然后透明地将客户端应用程序连接到 InnoDB 集群,提供路由和负载均衡功能。这一集成还允许您使用 AdminAPI 来管理在一个由 InnoDB 集群引导的 MySQL Router 上执行的一些操作。InnoDB 集群状态信息包括了关于与集群引导的 MySQL Router 相关的详细信息。操作使得您可以在集群级别创建 MySQL Router 用户,以便与集群中引导的 MySQL Router 进行工作等。
对于这些技术的更多信息,请查看描述中链接的用户文档。除了这份用户文档之外,对于所有AdminAPI方法,还有开发者文档可供使用,位于MySQL Shell JavaScript API Reference或MySQL Shell Python API Reference中,这些文档可以从Connectors and APIs页面获取。