MySQL Shell 9.0  /  MySQL InnoDB ClusterSet  /  InnoDB ClusterSet 限制

8.2 InnoDB ClusterSet 限制

InnoDB ClusterSet 使用 InnoDB Cluster 技術,而 InnoDB Cluster 技術又使用 Group Replication 技術。因此,這兩種技術的限制都適用於與 InnoDB ClusterSet 一起使用的伺服器實例。請參閱第 7.2 節「InnoDB 叢集限制」群組複製限制

  • InnoDB ClusterSet 優先考慮可用性而不是一致性,以最大程度地提高容錯能力。正常的複製延遲或網路分割可能表示在主要叢集發生問題時,某些或全部的複本叢集與主要叢集不完全一致。在這些情況下,如果您觸發緊急容錯移轉,任何未複製或發散的交易都可能遺失,並且只能手動復原和調和(如果可以存取它們)。無法保證在緊急容錯移轉期間會保留資料。

    如果您無法容忍在容錯移轉期間遺失任何交易或資料,請考慮使用在多個資料中心部署成員伺服器的單一 InnoDB 叢集,而不要使用 InnoDB ClusterSet 作為您的解決方案。請記住,此解決方案會對寫入效能產生明顯影響,因為穩定且低延遲的網路對於 InnoDB 叢集成員伺服器彼此通訊以達成交易共識非常重要。

  • InnoDB ClusterSet 不會自動容錯移轉到複本叢集。由於可能會遺失交易,並且無法保證資料一致性,因此管理員必須制定並實施執行緊急容錯移轉的決定。如果原始主要叢集保持在線上,則應在可以聯繫到它時立即將其關閉。

  • InnoDB ClusterSet 僅支援非同步複製,無法使用半同步複製。

  • InnoDB ClusterSet 僅支援主要和複本 InnoDB 叢集實例的單一主要模式。不支援多主要模式。

  • InnoDB ClusterSet 部署只能包含單一讀寫主要叢集。所有複本叢集都是唯讀的。不允許使用多個主要叢集的主動-主動設定,因為在叢集發生故障時無法保證資料一致性。

  • 一個 InnoDB 叢集只能參與一個 InnoDB ClusterSet 部署。因此,每個 InnoDB ClusterSet 部署都為單一 InnoDB 叢集提供可用性和災害復原解決方案。

  • 現有的 InnoDB 叢集無法在 InnoDB ClusterSet 部署中用作複本叢集。複本叢集必須從單一伺服器實例作為新的 InnoDB 叢集啟動。可以使用屬於群組複製群組的伺服器實例作為複本叢集,但您必須先完全終止群組複製群組,並小心任何可能影響 InnoDB ClusterSet 的自訂群組複製設定。如需詳細資訊,請參閱第 8.1 節「InnoDB ClusterSet 需求」

  • InnoDB ClusterSet 不支援使用執行 MySQL Server 5.7 的實例。