文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

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。這可以作為全域唯讀變數 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 節「使用全域交易識別符進行複製」

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