InnoDB ClusterSet 使用 InnoDB Cluster 技术,后者又使用 组复制(Group Replication) 技术。因此,这两种技术的限制适用于与 InnoDB ClusterSet 一起使用的服务器实例。请参阅 第 7.2 节 “InnoDB Cluster 的限制” 和 组复制的限制 。
-
InnoDB ClusterSet 将可用性优先于一致性,以最大限度地提高容灾能力。正常的复制延迟或网络分区可能意味着在主集群遇到问题时,一些或所有副本群集与主群集不完全一致。在这些情况下,如果您触发紧急故障切换,任何未复制或不同的事务都有丢失的风险,只能手动恢复和协调(如果可以访问)。无法保证在发生紧急故障切换时数据会被保留。
如果在故障切换期间不能容忍任何事务或数据丢失,请考虑使用单个 InnoDB Cluster ,成员服务器部署在多个数据中心,而不是使用 InnoDB ClusterSet 作为解决方案。请记住,此解决方案将对写入性能产生显著影响,因为稳定且低延迟的网络对于 InnoDB Cluster 成员服务器之间的通信非常重要,以便就事务达成共识。
-
InnoDB ClusterSet 不会自动故障转移到副本集群。由于可能会丢失事务,并且无法保证数据的一致性,因此管理员必须做出并执行执行紧急故障切换的决定。如果原始主集群保持联机,则应在联系到它后立即关闭。
-
InnoDB ClusterSet 仅支持异步复制,不能使用半同步复制。
-
InnoDB ClusterSet 仅支持主和副本 InnoDB Cluster 实例的单一主模式。不支持多主模式。
-
InnoDB ClusterSet 部署只能包含单个读写主集群。所有副本集群都是只读的。不允许具有多个主集群的双活(active-active)设置,因为在集群发生故障时无法保证数据一致性。
-
InnoDB 集群只能参与一个 InnoDB ClusterSet 部署。因此,每个 InnoDB ClusterSet 部署都为单个 InnoDB Cluster 提供了可用性和灾难恢复解决方案。
-
现有的 InnoDB Cluster 不能用作 InnoDB ClusterSet 部署中的副本群集。副本集群必须从单个服务器实例启动,作为新的 InnoDB Cluster 。可以将属于 Group Replication 组的服务器实例用作副本群集,但必须首先完全结束 Group Replication 组,并小心可能影响 InnoDB ClusterSet 的任何自定义 Group Replication 设置。有关更多信息,请参阅 第 8.1 节 “InnoDB ClusterSet 的要求” 。
-
InnoDB ClusterSet 不支持使用运行 MySQL Server 5.7 的实例。包含 MySQL 5.7 实例的 InnoDB Cluster 不能作为 InnoDB ClusterSet 部署的一部分。