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

8.2 InnoDB ClusterSet 限制

InnoDB ClusterSet 使用 InnoDB Cluster 技術,而 InnoDB Cluster 技術又使用 Group Replication 技術。因此,這兩種技術的限制適用於與 InnoDB ClusterSet 一起使用的伺服器執行個體。請參閱第 7.2 節,「InnoDB Cluster 限制」Group Replication 限制

  • 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 啟動。可以使用屬於 Group Replication 群組的伺服器執行個體作為複本叢集,但您必須先完全結束 Group Replication 群組,並小心任何可能影響 InnoDB ClusterSet 的自訂 Group Replication 設定。如需詳細資訊,請參閱第 8.1 節,「InnoDB ClusterSet 需求」

  • InnoDB ClusterSet 不支援使用執行 MySQL Server 5.7 的執行個體。