MySQL 8.4 發行說明
本節說明如何監控複製拓撲並驗證所有匿名交易是否已複製。這在線上變更複製模式時很有幫助,因為您可以驗證變更為 GTID 交易是否安全。
有幾種可能的方法可以等待交易複製
最簡單的方法(無論您的拓撲如何都適用,但依賴於時間)如下:如果您確定副本永遠不會延遲超過 N
秒,則等待任何比 N
秒更長的時間,這您認為對您的部署而言是安全的。
一種更安全的方法(就其不依賴時間而言),如果您只有一個具有一個或多個副本的來源,則執行以下兩個步驟
在來源上,執行此陳述式
SHOW BINARY LOG STATUS;
記下輸出中
File
和Position
欄中顯示的值。在每個副本上,使用來源的檔案和位置資訊來執行此處顯示的陳述式
SELECT SOURCE_POS_WAIT(file, position);
如果您有一個來源和多個層級的副本(即副本的副本),請在每個層級重複第二個步驟,從來源開始,然後在其所有副本上,然後在這些副本的所有副本上,依此類推。
如果您採用可能有多個寫入用戶端的環形複製拓撲,請為每個來源-副本連線執行第二個步驟,直到您完成整個循環。重複此程序,以便您完成整個循環兩次。
例如,如果有三台伺服器 A、B 和 C,以環狀方式進行複製,使得 A 複製到 B、B 複製到 C,而 C 複製到 A,請按照以下顯示的順序進行操作:
在 A 上執行步驟 1,在 B 上執行步驟 2。
在 B 上執行步驟 1,在 C 上執行步驟 2。
在 C 上執行步驟 1,在 A 上執行步驟 2。
在 A 上執行步驟 1,在 B 上執行步驟 2。
在 B 上執行步驟 1,在 C 上執行步驟 2。
在 C 上執行步驟 1,在 A 上執行步驟 2。