MySQL Shell 8.4  /  MySQL InnoDB ClusterSet  /  InnoDB ClusterSet 限制

8.2 InnoDB ClusterSet 限制

InnoDB ClusterSet 使用 InnoDB Cluster 技术,而 InnoDB Cluster 技术又使用组复制技术。因此,这两种技术的限制也适用于与 InnoDB ClusterSet 一起使用的服务器实例。请参阅 第 7.2 节 “InnoDB Cluster 限制”组复制限制

  • InnoDB ClusterSet 优先考虑可用性而不是一致性,以便最大限度地提高容错能力。正常的复制延迟或网络分区可能意味着在主集群出现问题时,部分或所有副本集群与主集群不完全一致。在这些情况下,如果您触发紧急故障转移,则任何未复制或不同的交易都有丢失的风险,并且只能手动恢复和协调(如果可以访问它们)。在紧急故障转移的情况下,不能保证数据会被保留。

    如果您无法容忍故障转移期间的任何事务或数据丢失,请考虑使用跨多个数据中心部署成员服务器的单个 InnoDB Cluster,而不是使用 InnoDB ClusterSet 作为解决方案。请记住,此解决方案会对写入性能产生显著影响,因为稳定且低延迟的网络对于 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 Cluster。可以使用作为组复制组一部分的服务器实例作为副本集群,但您必须先完全结束组复制组,并注意任何可能影响 InnoDB ClusterSet 的自定义组复制设置。有关更多信息,请参阅 第 8.1 节 “InnoDB ClusterSet 要求”

  • InnoDB ClusterSet 不支持使用运行 MySQL Server 5.7 的实例。