文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式 Letter) - 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.5 準備 NDB Cluster 以進行複寫

準備 NDB Cluster 以進行複寫包含以下步驟:

  1. 檢查所有 MySQL 伺服器的版本相容性 (請參閱第 25.7.2 節,「NDB Cluster 複寫的一般要求」)。

  2. 使用以下兩個 SQL 語句,在來源叢集上建立具有適當權限的複寫帳戶:

    mysqlS> CREATE USER 'replica_user'@'replica_host'
         -> IDENTIFIED BY 'replica_password';
    
    mysqlS> GRANT REPLICATION SLAVE ON *.*
         -> TO 'replica_user'@'replica_host';

    在先前的語句中,replica_user 是複寫帳戶的使用者名稱,replica_host 是複本的主機名稱或 IP 位址,而 replica_password 是指派給此帳戶的密碼。

    例如,若要建立名為 myreplica 的複寫使用者帳戶,並從名為 replica-host 的主機登入,並使用密碼 53cr37,請使用以下 CREATE USERGRANT 語句:

    mysqlS> CREATE USER 'myreplica'@'replica-host'
         -> IDENTIFIED BY '53cr37';
    
    mysqlS> GRANT REPLICATION SLAVE ON *.*
         -> TO 'myreplica'@'replica-host';

    基於安全考量,最好為複寫帳戶使用一個獨一無二且不作其他用途的使用者帳戶。

  3. 設定複本以使用來源。使用 mysql 用戶端,可以使用 CHANGE REPLICATION SOURCE TO 語句完成此操作。

    mysqlR> CHANGE REPLICATION SOURCE TO
         -> SOURCE_HOST='source_host',
         -> SOURCE_PORT=source_port,
         -> SOURCE_USER='replica_user',
         -> SOURCE_PASSWORD='replica_password';

    在先前的語句中,source_host 是複寫來源的主機名稱或 IP 位址,source_port 是複本連線到來源時要使用的連接埠,replica_user 是在來源上為複本設定的使用者名稱,而 replica_password 是在上一個步驟中為該使用者帳戶設定的密碼。

    例如,若要告訴複本使用主機名稱為 rep-source 的 MySQL 伺服器,並使用在上一個步驟中建立的複寫帳戶,請使用以下語句:

    mysqlR> CHANGE REPLICATION SOURCE TO
         -> SOURCE_HOST='rep-source',
         -> SOURCE_PORT=3306,
         -> SOURCE_USER='myreplica',
         -> SOURCE_PASSWORD='53cr37';

    如需可以使用此語句的選項的完整清單,請參閱第 15.4.2.2 節,「CHANGE REPLICATION SOURCE TO 語句」

    若要提供複寫備份功能,您還需要在啟動複寫程序之前,將 --ndb-connectstring 選項新增至複本的 my.cnf 檔案。詳細資訊請參閱第 25.7.9 節,「使用 NDB Cluster 複寫進行 NDB Cluster 備份」

    如需可以在複本的 my.cnf 中設定的其他選項,請參閱第 19.1.6 節,「複寫和二進位記錄選項與變數」

  4. 如果來源叢集已在使用中,您可以建立來源的備份,並將其載入複本,以減少複本與來源同步所需的時間。如果複本也正在執行 NDB Cluster,可以使用第 25.7.9 節,「使用 NDB Cluster 複寫進行 NDB Cluster 備份」中描述的備份與還原程序完成此操作。

    ndb-connectstring=management_host[:port]

    如果您在複本上 使用 NDB Cluster,可以使用來源上的此命令建立備份:

    shellS> mysqldump --source-data=1

    然後將產生的資料傾印複製到複本,將其匯入複本。在此之後,您可以使用 mysql 用戶端將資料從傾印檔案匯入複本資料庫,如下所示,其中 dump_file 是使用來源上的 mysqldump 產生的檔案名稱,而 db_name 是要複寫的資料庫名稱:

    shellR> mysql -u root -p db_name < dump_file

    如需 mysqldump 使用選項的完整清單,請參閱第 6.5.4 節,「mysqldump — 資料庫備份程式」

    注意

    如果您以這種方式將資料複製到複本,請確保在載入所有資料之前,停止複本嘗試連線到來源以開始複寫。您可以透過以 --skip-replica-start 啟動複本來執行此操作。資料載入完成後,請依照接下來兩節中概述的其他步驟。

  5. 請確保每個作為複寫來源的 MySQL 伺服器都已指派唯一的伺服器 ID,並使用以列為基礎的格式啟用二進位記錄。(請參閱第 19.2.1 節,「複寫格式」。)此外,我們強烈建議啟用 replica_allow_batching 系統變數 (預設值)。

    使用 --ndb-replica-batch-size 設定複本上用於寫入的批次大小,而不是 --ndb-batch-size,並使用 --ndb-replica-blob-write-batch-bytes 而不是 --ndb-blob-write-batch-bytes 來判斷複寫應用程式用於寫入 blob 資料的批次大小。所有這些選項都可以在來源伺服器的 my.cnf 檔案中設定,或在啟動來源 mysqld 程序時在命令列上設定。詳細資訊請參閱第 25.7.6 節,「啟動 NDB Cluster 複寫 (單一複寫通道)」