使用 複寫交易 GTIDs - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 複寫交易 GTIDs

下列預存程序會使用全域交易識別碼 (GTIDs) 搭配 Aurora My 控制如何複寫交易SQL。若要了解如何搭配 Aurora My 使用基於 GTIDs的複寫SQL,請參閱 使用 GTID型複寫

mysql.rds_assign_gtids_to_anonymous_transactions (Aurora MySQL 第 3 版)

配置 CHANGE REPLICATION SOURCE TO 陳述式的 ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS 選項。它會讓複寫通道GTID將 指派給沒有複寫交易的 。如此一來,您就可以從不使用 GTID型複寫的來源執行二進位日誌複寫,以複寫至 的複本。如需詳細資訊,請參閱 我的SQL參考手冊中的 CHANGE REPLICATION SOURCE TO 陳述式和複寫從不含 的來源GTIDs到使用 的複本GTIDs

語法

CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);

參數

gtid_option

字串值。允許的值為 OFFLOCAL或指定的 UUID。

使用須知

此程序與在社群 My CHANGE REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = gtid_option 中發行陳述式具有相同的效果SQL。

GTID 必須設為 ON gtid_option,才能將 設定為 LOCAL或特定 UUID。

預設為 OFF,表示不使用該功能。

LOCAL 會指派GTID包含複本本身 UUID( server_uuid設定) 的 。

傳遞屬於 的 參數會UUID指派包含指定 GTID的 UUID,例如複寫來源伺服器的 server_uuid設定。

範例

若要關閉此功能:

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('OFF'); +-------------------------------------------------------------+ | Message | +-------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: OFF | +-------------------------------------------------------------+ 1 row in set (0.07 sec)

若要使用複本自己的 UUID:

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('LOCAL'); +---------------------------------------------------------------+ | Message | +---------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: LOCAL | +---------------------------------------------------------------+ 1 row in set (0.07 sec)

若要使用指定的 UUID:

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('317a4760-f3dd-3b74-8e45-0615ed29de0e'); +----------------------------------------------------------------------------------------------+ | Message | +----------------------------------------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: 317a4760-f3dd-3b74-8e45-0615ed29de0e | +----------------------------------------------------------------------------------------------+ 1 row in set (0.07 sec)

mysql.rds_gtid_purged (Aurora MySQL 第 3 版)

將系統變數的全域值gtid_purged設定為指定的全域交易識別碼 (GTID) 組。gtid_purged 系統變數是一個GTID集合,包含已在伺服器上遞交但不存在於伺服器上任何二進位日誌檔案中的所有交易GTIDs。

若要允許與 MySQL 8.0 的相容性,有兩種方式可設定 的值gtid_purged

  • 將 的值取代gtid_purged為您指定的GTID集。

  • 將指定的GTID集合附加至gtid_purged已包含的GTID集合。

語法

若要將 的值取代gtid_purged為您指定的GTID集:

CALL mysql.rds_gtid_purged (gtid_set);

若要將 的值附加gtid_purged至指定的GTID集合:

CALL mysql.rds_gtid_purged (+gtid_set);

參數

gtid_set

的值gtid_set必須是目前值 的超集gtid_purged,且無法與 相交gtid_subtract(gtid_executed,gtid_purged)。也就是說,新GTID集必須包含已在 中的任何 GTIDs gtid_purged,且不能包含尚未清除的任何 GTIDs gtid_executedgtid_set 參數也不能包含全域gtid_owned集中的任何 GTIDs ,GTIDs這是目前在伺服器上處理的交易的 。

使用須知

主要使用者必須執行 mysql.rds_gtid_purged 程序。

Aurora MySQL 3.04 版及更新版本支援此程序。

範例

下列範例會將 指派給GTID3E11FA47-71CA-11E1-9E33-C80AA9429562:23gtid_purged全域變數。

CALL mysql.rds_gtid_purged('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');

mysql.rds_skip_transaction_with_gtid (Aurora MySQL 第 2 版和第 3 版)

略過 Aurora 主要執行個體上具有指定全域交易識別符 (GTID) 的交易複寫。

當特定GTID交易已知會造成問題時,您可以使用此程序進行災難復原。使用此預存程序來略過有問題的交易。有問題的交易範例包括停用複寫、刪除重要資料或導致資料庫執行個體無法使用的交易。

語法

CALL mysql.rds_skip_transaction_with_gtid ( gtid_to_skip );

參數

gtid_to_skip

要略過GTID的複寫交易的 。

使用須知

主要使用者必須執行 mysql.rds_skip_transaction_with_gtid 程序。

Aurora MySQL 第 2 版和第 3 版支援此程序。

範例

下列範例會略過 交易的複寫GTID3E11FA47-71CA-11E1-9E33-C80AA9429562:23

CALL mysql.rds_skip_transaction_with_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');

mysql.rds_start_replication_until_gtid (Aurora MySQL 第 3 版)

Aurora MySQL 資料庫叢集啟動複寫,並在指定的全域交易識別符 () 之後立即停止複寫GTID。

語法

CALL mysql.rds_start_replication_until_gtid(gtid);

參數

gtid

GTID 複寫之後要停止。

使用須知

主要使用者必須執行 mysql.rds_start_replication_until_gtid 程序。

Aurora MySQL 3.04 版及更新版本支援此程序。

受管複寫不支援預mysql.rds_start_replication_until_gtid存程序,其中包括下列項目:

gtid 參數指定了複本已經執行的交易時,複寫會立即停止。

範例

下列範例會啟動複寫並複寫變更,直到達到 GTID 為止3E11FA47-71CA-11E1-9E33-C80AA9429562:23

call mysql.rds_start_replication_until_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');