第24章 InnoDB 副本集
本章介绍MySQL InnoDB ReplicaSet,它结合了MySQL技术,允许您部署和管理第19章,Replication。有关InnoDB ReplicaSet的详细文档,请参阅MySQL InnoDB ReplicaSet。
InnoDB ReplicaSet由至少两个MySQL Server实例组成,它提供了您熟悉的所有MySQL复制功能,包括读取扩展和数据安全性。InnoDB ReplicaSet使用以下MySQL技术:
-
MySQL Shell,这是一个高级的MySQL客户端和代码编辑器。
-
MySQL Server,以及第19章,Replication,它使得一组MySQL实例能够提供可用性和异步读取扩展。InnoDB ReplicaSet提供了一个易于使用的编程方式来工作与复制。
-
MySQL Router,是一个轻量级的中间件,它提供了从应用程序到InnoDB ReplicaSet之间的透明路由。
InnoDB ReplicaSet 的接口与MySQL InnoDB 集群相似,您使用 MySQL Shell 与 MySQL 服务器实例作为 ReplicaSet 进行工作,并且 MySQL Router 与之紧密集成,同样与 InnoDB 集群一致。
基于 MySQL 复制的 InnoDB ReplicaSet 有一个单一的主节点,它将数据复制到一个或多个从节点。与 InnoDB 集群不同,InnoDB ReplicaSet 不提供自动故障转移或多主模式等功能。但是,它支持配置、添加和删除实例的方式相同。您可以手动切换或故障转移到一个从节点,例如在发生故障时。甚至可以将现有的复制部署转换为 InnoDB ReplicaSet,并以此方式管理它。
使用 InnoDB ReplicaSet,您需要通过AdminAPI进行工作,这是 MySQL Shell 提供的。AdminAPI 支持 JavaScript 和 Python,非常适合用于脚本和自动化部署 MySQL 以实现高可用性和扩展性。通过使用 MySQL Shell 的 AdminAPI,您可以避免手动配置多个实例的需要。相反,AdminAPI 提供了一个现代化的接口来管理 MySQL 实例集合,并允许您从一个中心工具中进行部署、管理和监控您的部署。
要开始使用InnoDB ReplicaSet,您需要下载并安装MySQL Shell。您还需要一些主机上运行着MySQL Server实例,并且可以安装MySQL Router。
InnoDB ReplicaSet支持MySQL Clone,这使得您能够简单地配置实例。在过去,要在MySQL复制部署中加入一个新实例之前,您需要手动将事务转移到即将加入的实例。这可能涉及到复制文件、手动拷贝等操作。现在,您可以简单地添加一个实例到副本集,它将自动配置。
类似地,InnoDB ReplicaSet 与 MySQL Router 紧密集成,您可以使用 AdminAPI 来 一起工作。 MySQL Router 可以自动根据 InnoDB ReplicaSet 的配置来配置自己,这个过程称为 引导,这减少了您需要手动配置路由的需求。 MySQL Router 然后透明地将客户端应用程序连接到 InnoDB ReplicaSet,提供路由和负载均衡功能。这一集成还允许您使用 AdminAPI 来管理某些与 MySQL Router 对于一个被引导为对 InnoDB ReplicaSet 的配置有关的操作。InnoDB ReplicaSet 状态信息包括了关于在 ReplicaSet 上引导的 MySQL Routers 的详细信息。操作使得您能够 为 ReplicaSet 创建 MySQL Router 用户,以便与在 ReplicaSet 上引导的 MySQL Routers 进行工作等等。
有关这些技术的更多信息,请参阅描述中链接的用户文档。此外,还有针对所有 AdminAPI 方法的开发者文档可从 Connectors and APIs 的 MySQL Shell JavaScript API 参考或 MySQL Shell Python API 参考获取。