本节介绍 InnoDB Cluster 的已知限制。由于 InnoDB Cluster 使用 Group Replication,您还应该了解它的局限性,请参阅 Group Replication Limitations。
- 重要的
由于元数据查询中的错误,MySQL Shell 8.0.27 无法用于管理运行 MySQL Server 8.0.25 的 InnoDB Cluster。要解决此问题,请在将 MySQL Shell 8.0.27 与集群一起使用之前,将 InnoDB 集群成员实例上的 MySQL Server 升级到 8.0.26 或 8.0.27 版本。该问题将在 MySQL Shell 8.0.28 中修复。
InnoDB Cluster 不管理手动配置的异步复制通道。Group Replication 和 AdminAPI 不确保异步复制仅在主服务器上处于活动状态,并且状态不会跨实例复制。这可能导致复制不再有效的各种情况,并可能导致脑裂。一个 InnoDB Cluster 和另一个 InnoDB Cluster 之间的复制仅由 InnoDB ClusterSet 支持,它可从 MySQL 8.0.27 获得,并管理从活动的主要读写 InnoDB Cluster 到多个只读副本集群的复制。有关该解决方案的信息,请参阅第 8 章,MySQL InnoDB ClusterSet。
InnoDB Cluster 旨在部署在局域网中。在广域网上部署单个 InnoDB Cluster 对写入性能有显着影响。稳定且低延迟的网络对于 InnoDB Cluster 成员服务器使用底层组复制技术相互通信以达成交易共识非常重要。然而,InnoDB ClusterSet 被设计为跨多个数据中心部署,每个 InnoDB Cluster 都在一个数据中心中,异步复制通道将它们链接起来。有关该解决方案的信息,请参阅第 8 章,MySQL InnoDB ClusterSet。
-
对于 AdminAPI 操作,您只能使用 TCP/IP 连接和经典 MySQL 协议连接到 InnoDB 集群中的服务器实例。AdminAPI 操作不支持使用 Unix 套接字和命名管道,AdminAPI 操作不支持使用 X 协议。相同的限制适用于服务器实例本身之间的连接。
笔记客户端应用程序可以使用 X 协议和 Unix 套接字和命名管道连接到 InnoDB 集群中的实例。这些限制仅适用于使用 AdminAPI 命令的管理操作,以及实例之间的连接。
AdminAPI 和 InnoDB Cluster 支持使用运行 MySQL Server 5.7 的实例。但是,这些实例还有其他限制,并且所描述的某些功能在您使用它们时并不适用。 第 6.2.1 节,“使用运行 MySQL 5.7 的实例”列出了额外的限制。
使用多主模式时,不支持针对同一对象但在不同服务器上发出的并发数据定义语句和数据操作语句。在对象上发布数据定义语言 (DDL) 语句期间,在同一对象上但来自不同服务器实例的并发数据操作语言 (DML) 存在在未检测到的不同实例上执行的冲突 DDL 的风险。有关详细信息,请参阅 组复制限制。