本節說明使用全域交易識別碼 (GTID) 的交易式複製。使用 GTID 時,每個交易在來源伺服器上提交時都會被識別和追蹤,並由任何複本應用;這表示在使用 GTID 時,當啟動新的複本或容錯移轉至新的來源時,不需要參考記錄檔或這些檔案內的位置,這大大簡化了這些任務。由於基於 GTID 的複製完全基於交易,因此很容易確定來源和複本是否一致;只要在來源上提交的所有交易也在複本上提交,就可以保證兩者之間的一致性。您可以使用基於語句或基於列的複製與 GTID(請參閱第 19.2.1 節「複製格式」);但是,為了獲得最佳結果,我們建議您使用基於列的格式。
GTID 始終在來源和複本之間保留。這表示您可以隨時透過檢查其二進位記錄檔,來確定任何複本上套用之任何交易的來源。此外,一旦具有給定 GTID 的交易在給定伺服器上提交,則該伺服器會忽略任何後續具有相同 GTID 的交易。因此,在來源上提交的交易在複本上最多只能套用一次,這有助於保證一致性。
本節討論以下主題
GTID 的定義和建立方式,以及它們在 MySQL 伺服器中的表示方式(請參閱第 19.1.3.1 節「GTID 格式和儲存」)。
GTID 的生命週期(請參閱第 19.1.3.2 節「GTID 生命週期」)。
用於同步使用 GTID 的複本和來源的自動定位功能(請參閱第 19.1.3.3 節「GTID 自動定位」)。
設定和啟動基於 GTID 的複製的一般程序(請參閱第 19.1.3.4 節「使用 GTID 設定複製」)。
使用 GTID 時佈建新複製伺服器的建議方法(請參閱第 19.1.3.5 節「使用 GTID 進行容錯移轉和擴充」)。
使用基於 GTID 的複製時應注意的限制和約束(請參閱第 19.1.3.7 節「使用 GTID 複製的限制」)。
可用於處理 GTID 的預存函數(請參閱第 19.1.3.8 節「操作 GTID 的預存函數範例」)。
有關與基於 GTID 的複製相關的 MySQL 伺服器選項和變數的資訊,請參閱第 19.1.6.5 節「全域交易 ID 系統變數」。另請參閱第 14.18.2 節「與全域交易識別碼 (GTID) 一起使用的函數」,其中說明 MySQL 9.0 支援用於 GTID 的 SQL 函數。