本节介绍 InnoDB 集群的已知限制。由于 InnoDB 集群使用组复制,因此您还应了解其限制,请参阅 组复制限制。
InnoDB 集群不管理手动配置的异步复制通道。组复制和 AdminAPI 无法确保异步复制仅在主服务器上处于活动状态,并且状态不会跨实例复制。这会导致各种情况下复制不再起作用,并可能导致脑裂。一个 InnoDB 集群与另一个 InnoDB 集群之间的复制仅受 InnoDB ClusterSet 支持,InnoDB ClusterSet 管理从活动主读写 InnoDB 集群到多个只读副本集群的复制。有关该解决方案的信息,请参阅 第 8 章,MySQL InnoDB ClusterSet。
InnoDB 集群旨在部署在局域网中。在广域网上部署单个 InnoDB 集群会对写入性能产生明显的影响。稳定且低延迟的网络对于 InnoDB 集群成员服务器使用底层组复制技术相互通信至关重要,以便就事务达成共识。但是,InnoDB ClusterSet 旨在跨多个数据中心部署,每个 InnoDB 集群位于单个数据中心,异步复制通道将它们连接起来。有关该解决方案的信息,请参阅 第 8 章,MySQL InnoDB ClusterSet。
-
对于 AdminAPI 操作,您只能使用 TCP/IP 连接和经典 MySQL 协议连接到 InnoDB 集群中的服务器实例。AdminAPI 操作不支持使用 Unix 套接字和命名管道,也不支持使用 X 协议进行 AdminAPI 操作。相同的限制适用于服务器实例之间的连接。
注意客户端应用程序可以使用 X 协议和 Unix 套接字以及命名管道连接到 InnoDB 集群中的实例。这些限制仅适用于使用 AdminAPI 命令的管理操作,以及实例之间的连接。
AdminAPI 和 InnoDB 集群不支持使用运行 MySQL Server 5.7 的实例。
在使用多主模式时,不支持对同一对象但在不同服务器上发出的并发数据定义语句和数据操作语句。在对对象发出数据定义语言 (DDL) 语句时,从不同服务器实例对同一对象发出并发数据操作语言 (DML) 会有冲突的 DDL 在不同实例上执行未检测到的风险。有关更多信息,请参阅 组复制限制。