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