文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙) - 40.0Mb
PDF (A4) - 40.1Mb
手冊頁 (TGZ) - 258.2Kb
手冊頁 (Zip) - 365.3Kb
資訊 (Gzip) - 4.0Mb
資訊 (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  複製與二進制日誌選項和變數

19.1.6 複製與二進制日誌選項和變數

以下章節包含有關 mysqld 選項和伺服器變數的資訊,這些選項和變數用於複製和控制二進制日誌。用於來源和複本的選項和變數,以及與二進制日誌和全域交易識別碼 (GTID) 相關的選項和變數會分開說明。其中還包含一組快速參考表,提供關於這些選項和變數的基本資訊。

特別重要的是 server_id 系統變數。

命令列格式 --server-id=#
系統變數 server_id
範圍 全域
動態
SET_VAR 提示語適用
類型 整數
預設值 1
最小值 0
最大值 4294967295

此變數指定伺服器 ID。 server_id 預設設定為 1。伺服器可以使用此預設 ID 啟動,但當啟用二進制日誌時,如果您沒有明確設定 server_id 來指定伺服器 ID,則會發出資訊訊息。

對於在複寫拓撲中使用的伺服器,您必須為每個複寫伺服器指定一個唯一的伺服器 ID,範圍從 1 到 232 − 1。「唯一」表示每個 ID 必須與複寫拓撲中任何其他來源或複本所使用的其他 ID 不同。如需更多資訊,請參閱 第 19.1.6.2 節,〈複寫來源選項和變數〉,以及 第 19.1.6.3 節,〈複本伺服器選項和變數〉

如果伺服器 ID 設定為 0,則會進行二進位記錄,但是伺服器 ID 為 0 的來源會拒絕來自複本的任何連線,而伺服器 ID 為 0 的複本會拒絕連線到來源。請注意,雖然您可以將伺服器 ID 動態變更為非零值,但這樣做不會立即啟用複寫開始。您必須變更伺服器 ID,然後重新啟動伺服器才能初始化複本。

如需更多資訊,請參閱 第 19.1.2.2 節,〈設定複本組態〉

server_uuid

除了在 server_id 系統變數中設定的預設或使用者提供的伺服器 ID 之外,MySQL 伺服器還會產生一個真實的 UUID。此 UUID 可作為全域唯讀變數 server_uuid 使用。

注意

如本節先前所述,server_uuid 系統變數的存在不會改變為每個 MySQL 伺服器設定唯一 server_id 值,作為準備和執行 MySQL 複寫的一部分的要求。

系統變數 server_uuid
範圍 全域
動態
SET_VAR 提示語適用
類型 字串

啟動時,MySQL 伺服器會自動取得 UUID,如下所示

  1. 嘗試讀取並使用寫入檔案 data_dir/auto.cnf 中的 UUID(其中 data_dir 是伺服器的資料目錄)。

  2. 如果找不到 data_dir/auto.cnf,則會產生新的 UUID 並將其儲存到此檔案中,必要時建立該檔案。

auto.cnf 檔案的格式類似於 my.cnfmy.ini 檔案。auto.cnf 只有一個包含單個 server_uuid 設定和值的 [auto] 區段;該檔案的內容看起來類似於此處所示

[auto]
server_uuid=8a94f357-aab4-11df-86ab-c80aa9429562
重要

auto.cnf 檔案是自動產生的;請勿嘗試寫入或修改此檔案。

當使用 MySQL 複寫時,來源和複本會知道彼此的 UUID。複本的 UUID 值可以在 SHOW REPLICAS 的輸出中看到。一旦執行了 START REPLICA,來源的 UUID 值就可以在複本上的 SHOW REPLICA STATUS 的輸出中取得。

注意

發出 STOP REPLICARESET REPLICA 陳述式不會重設複本上使用的來源 UUID。

伺服器的 server_uuid 也用於源自該伺服器的交易的 GTID 中。如需更多資訊,請參閱 第 19.1.3 節,〈使用全域交易識別碼的複寫〉

啟動時,如果複寫 I/O(接收器)執行緒的來源 UUID 與其自身的 UUID 相等,則會產生錯誤並中止,除非已設定 --replicate-same-server-id 選項。此外,如果符合下列任一條件,複寫接收器執行緒會產生警告