文件首頁
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 參考手冊  /  ...  /  啟動 NDB Cluster 複製(單一複製通道)

25.7.6 啟動 NDB Cluster 複製(單一複製通道)

本節概述使用單一複製通道啟動 NDB Cluster 複製的程序。

  1. 發出此命令以啟動 MySQL 複製來源伺服器,其中 id 是此伺服器的唯一 ID(請參閱第 25.7.2 節「NDB Cluster 複製的一般需求」

    shellS> mysqld --ndbcluster --server-id=id \
            --log-bin --ndb-log-bin &

    這會使用正確的記錄格式,並啟用二進位記錄來啟動伺服器的 mysqld 處理序。也必須使用 --ndb-log-bin 選項,明確啟用對 NDB 資料表更新的記錄。

    注意

    您也可以使用 --binlog-format=MIXED 啟動來源,在此情況下,在叢集之間進行複製時會自動使用以列為基礎的複製。NDB Cluster 複製不支援以陳述式為基礎的二進位記錄(請參閱第 25.7.2 節「NDB Cluster 複製的一般需求」)。

  2. 如下所示啟動 MySQL 複本伺服器

    shellR> mysqld --ndbcluster --server-id=id &

    在剛才顯示的命令中,id 是複本伺服器的唯一 ID。不需要在複本上啟用記錄。

    注意

    除非您想要立即開始複製,否則請延遲啟動複製執行緒,直到發出適當的 START REPLICA 陳述式(如下面步驟 4 所說明)。您可以使用 --skip-replica-start 啟動複本,來執行此操作。

  3. 必須將複本伺服器與來源伺服器的複製二進位日誌同步。如果二進位記錄先前未在來源上執行,請在複本上執行下列陳述式

    mysqlR> CHANGE REPLICATION SOURCE TO
         -> SOURCE_LOG_FILE='',
         -> SOURCE_LOG_POS=4;

    這會指示複本從日誌的起點開始讀取來源伺服器的二進位日誌。否則,也就是說,如果您正在使用備份從來源載入資料,請參閱第 25.7.8 節「使用 NDB Cluster 複製實作容錯移轉」,以取得關於如何在這些情況下取得正確的值以用於 SOURCE_LOG_FILESOURCE_LOG_POS 的資訊。

  4. 最後,從複本上的 mysql 用戶端發出此命令,指示複本開始套用複製

    mysqlR> START REPLICA;

    這也會啟動從來源到複本的資料和變更傳輸。

也可以使用兩個複製通道,方式與下一節中所述的程序類似;本程序與使用單一複製通道之間的差異在第 25.7.7 節「使用兩個複製通道進行 NDB Cluster 複製」中說明。

也可以藉由啟用批次更新來改善叢集複製效能。這可以藉由在複本的 mysqld 處理序上設定系統變數 replica_allow_batching 來達成。通常,會在收到更新後立即套用。但是,使用批次處理會導致更新以每次 32 KB 的批次套用;這可能會產生更高的輸送量和更少的 CPU 使用率,尤其是在個別更新相對較小的情況下。

注意

批次處理是以每個 epoch 為基礎運作;屬於多個交易的更新可以做為相同批次的一部分傳送。

即使更新總計少於 32 KB,也會在達到 epoch 結尾時套用所有未完成的更新。

批次處理可以在執行階段開啟和關閉。若要在執行階段啟動它,您可以使用這兩個陳述式中的任何一個

SET GLOBAL replica_allow_batching = 1;
SET GLOBAL replica_allow_batching = ON;

如果特定批次造成問題(例如效果似乎未正確複製的陳述式),可以使用下列任一陳述式停用批次處理

SET GLOBAL replica_allow_batching = 0;
SET GLOBAL replica_allow_batching = OFF;

您可以使用適當的 SHOW VARIABLES 陳述式來檢查目前是否正在使用批次處理,如下所示

mysql> SHOW VARIABLES LIKE 'replica%';