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