本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 GTIDs 複寫交易
下列預存程序控制如何使用全域交易識別符 (GTID) 搭配 RDS for MySQL 複寫交易。如需有關使用 RDS for MySQL GTID 式複寫的詳細資訊,請參閱使用 GTID 式複寫。
使用預存程序管理使用 caching_sha2_password 所設定之複寫使用者的複寫時,您必須指定 SOURCE_SSL=1 來設定 TLS。caching_sha2_password 是 RDS for MySQL 8.4 的預設身分驗證外掛程式。
mysql.rds_skip_transaction_with_gtid
略過 MySQL 資料庫執行個體上具有指定全域交易識別碼 (GTID) 之交易的複寫。
若已知特定 GTID 交易導致錯誤,可以使用此程序進行災難復原。使用此預存程序來略過有問題的交易。有問題的交易範例包括停用複寫、刪除重要資料或導致資料庫執行個體無法使用的交易。
語法
CALL mysql.rds_skip_transaction_with_gtid (gtid_to_skip);
參數
-
gtid_to_skip -
要略過的複寫交易的 GTID。
使用須知
主要使用者必須執行 mysql.rds_skip_transaction_with_gtid 程序。
所有 RDS for MySQL 5.7 版,以及所有 RDS for MySQL 8.0 版和所有 RDS for MySQL 8.4 版都支援此程序。
範例
下列範例會略過使用 GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 進行交易的複寫。
CALL mysql.rds_skip_transaction_with_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');
mysql.rds_start_replication_until_gtid
從 RDS for MySQL 資料庫執行個體 啟動複寫,並在指定的全域交易識別碼 (GTID) 之後立即停止複寫。
語法
CALL mysql.rds_start_replication_until_gtid(gtid);
參數
-
gtid -
在此 GTID 後停止複寫。
使用須知
主要使用者必須執行 mysql.rds_start_replication_until_gtid 程序。
所有 RDS for MySQL 5.7 版,以及所有 RDS for MySQL 8.0 版和所有 RDS for MySQL 8.4 版都支援此程序。
您可以透過延遲複寫來使用此程序進行災難復原。若您已延遲複寫設定,您可使用此程序變更延遲的僅供讀取複本,並向前捲動到災難發生前的時間點。在此程序停止複寫後,您可使用 提升僅供讀取複本為獨立的資料庫執行個體 中的說明來提升該僅供讀取複本成為新的主要資料庫執行個體。
您可使用以下預存程序來設定延遲複寫:
當 gtid 參數指定了複本已經執行的交易時,複寫會立即停止。
範例
以下範例會啟動複寫並複寫變更,直到達到 GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 為止。
call mysql.rds_start_replication_until_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');