文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  MySQL NDB Cluster 9.0  /  NDB Cluster 複寫

25.7 NDB Cluster 複寫

NDB Cluster 支援非同步複寫,通常簡稱為 複寫。本節說明如何設定和管理一個配置,其中一組作為 NDB Cluster 運作的電腦複寫到第二個電腦或一組電腦。我們假設讀者對本手冊其他章節中討論的標準 MySQL 複寫有所了解。(請參閱 第 19 章,複寫)。

注意

NDB Cluster 不支援使用 GTID 的複寫; NDB 儲存引擎也不支援半同步複寫和群組複寫。

一般(非叢集)複寫涉及一個來源伺服器和一個複本伺服器,來源伺服器之所以如此命名,是因為要複寫的操作和資料源自於它,而複本伺服器則是這些操作和資料的接收者。在 NDB Cluster 中,複寫在概念上非常相似,但在實務上可能更複雜,因為它可以擴展到涵蓋許多不同的配置,包括在兩個完整的叢集之間進行複寫。雖然 NDB Cluster 本身依賴 NDB 儲存引擎以實現叢集功能,但不必使用 NDB 作為複本複製資料表的儲存引擎(請參閱 從 NDB 複寫到其他儲存引擎)。但是,為了獲得最大的可用性,最好(也建議)從一個 NDB Cluster 複寫到另一個 NDB Cluster,這也是我們討論的情境,如下圖所示

圖 25.10 NDB Cluster 到 Cluster 複寫佈局

Much of the content is described in the surrounding text. It visualizes how a MySQL source is replicated. The replica differs in that it shows an I/O (receiver) thread pointing to a relay binary log which points to an SQL (applier) thread. In addition, while the binary log points to and from the NDBCLUSTER engine on the source server, on the replica it points directly to an SQL node (MySQL server).

在此情境中,複寫過程是將來源叢集的連續狀態記錄並儲存到複本叢集中。此過程由一個稱為 NDB 二進制日誌注入器執行緒的特殊執行緒完成,該執行緒在每個 MySQL 伺服器上執行,並產生一個二進制日誌 (binlog)。此執行緒確保產生二進制日誌的叢集中的所有變更(而不僅僅是透過 MySQL Server 執行的變更)都以正確的序列化順序插入到二進制日誌中。我們將 MySQL 來源和複本伺服器稱為複寫伺服器或複寫節點,它們之間的資料流或通訊線路稱為複寫通道

有關使用 NDB Cluster 和 NDB Cluster 複寫執行時間點復原的資訊,請參閱第 25.7.9.2 節,「使用 NDB Cluster 複寫進行時間點復原」

NDB API 複本狀態變數。 NDB API 計數器可以在複本叢集上提供增強的監控功能。這些計數器實作為 NDB 統計資料 _replica 狀態變數,如 SHOW STATUS 的輸出中所示,或是在連線到 MySQL Server 的 mysql 用戶端工作階段中,針對 Performance Schema session_statusglobal_status 資料表查詢的結果中所示,該 MySQL Server 在 NDB Cluster 複寫中充當複本。透過比較影響複寫 NDB 資料表的陳述式執行前後的這些狀態變數的值,您可以觀察到複本在 NDB API 層次採取的相應動作,這在監控或疑難排解 NDB Cluster 複寫時非常有用。 第 25.6.16 節,「NDB API 統計計數器和變數」,提供了其他資訊。

從 NDB 複寫到非 NDB 資料表。可以從充當複寫來源的 NDB Cluster 將 NDB 資料表複寫到複本 mysqld 上使用其他 MySQL 儲存引擎(如 InnoDBMyISAM)的資料表。這受到一些條件的約束;請參閱從 NDB 複寫到其他儲存引擎從 NDB 複寫到非交易儲存引擎以取得更多資訊。