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