文件首頁
MySQL Shell 8.4
下載本手冊
PDF (美式信紙) - 2.2Mb
PDF (A4) - 2.3Mb


MySQL Shell 8.4  /  ...  /  搭配 InnoDB Cluster 使用 MySQL Clone

7.4.6 搭配 InnoDB Cluster 使用 MySQL Clone

InnoDB Cluster 整合 MySQL Clone 外掛程式,以提供加入執行個體的自動佈建。擷取叢集資料以使執行個體能與叢集同步的流程稱為分散式復原。當執行個體需要復原叢集的交易時,我們會區分捐贈者,即提供資料的叢集執行個體,以及接收者,即接收來自捐贈者資料的執行個體。在先前版本中,Group Replication 僅提供非同步複製來復原加入執行個體與叢集同步所需的交易,以使其能加入叢集。對於有大量先前已處理交易的叢集而言,新的執行個體可能需要很長時間才能復原所有交易,才能加入叢集。或者,已清除 GTID (例如作為定期維護的一部分) 的叢集可能會遺失復原新執行個體所需的一些交易。在這種情況下,唯一的替代方案是使用 MySQL Enterprise Backup 之類的工具手動佈建執行個體,如搭配 Group Replication 使用 MySQL Enterprise Backup中所示。

MySQL Clone 提供另一種執行個體復原與叢集同步所需交易的方法。MySQL Clone 不依賴非同步複製來復原交易,而是擷取捐贈者執行個體上資料的快照,然後將快照傳輸至接收者。

警告

接收者中的所有先前資料都會在複製作業期間遭到破壞。但是,所有未儲存在資料表中的 MySQL 設定都會保留。

一旦複製作業將快照傳輸至接收者,如果叢集在傳輸快照時處理過交易,則會使用非同步複製來復原接收者與叢集同步所需的任何資料。這可能比執行個體使用非同步複製復原所有交易有效率得多,並且避免了任何由清除 GTID 引起的問題,讓您能夠快速為 InnoDB Cluster 佈建新的執行個體。如需更多資訊,請參閱Clone 外掛程式用於分散式復原的複製

與使用 MySQL Clone 相反,增量復原是加入叢集的執行個體僅使用非同步複製來從叢集復原執行個體的流程。當 InnoDB Cluster 設定為使用 MySQL Clone 時,加入叢集的執行個體會使用 MySQL Clone 或增量復原來復原叢集的交易。依預設,叢集會自動選擇最適合的方法,但您也可以選擇設定此行為,例如強制複製,以取代加入執行個體已處理的任何交易。當您以互動模式 (預設) 使用 MySQL Shell 時,如果叢集不確定是否可以繼續進行復原,則會提供互動式提示。本節說明您獲得的不同選項,以及影響您可以選擇哪些選項的不同情境。

此外,Cluster.status() 對於 RECOVERING 狀態的成員的輸出,包括復原進度資訊,讓您能夠輕鬆監控復原作業,無論這些作業是使用 MySQL Clone 還是增量復原。InnoDB Cluster 在 Cluster.status() 的輸出中,提供有關使用 MySQL Clone 的執行個體的其他資訊。

捐贈者和接收者執行個體存在複製版本相容性檢查。在特定情況下,只需要主要和次要版本號碼相符,而會忽略修補程式號碼。

適用下列條件

  • 只有 8.0.17 或更高版本才能執行複製。

  • 如果兩個版本都是 8.0.37 或更高版本,則只需要主要和次要版本相符。

  • 如果版本為 8.0.17 或更高版本,且低於 8.0.37,則主要、次要和修補程式號碼必須相符。