使用複製交易 GTIDs - Amazon Aurora

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

使用複製交易 GTIDs

下列預存程序控制如何使用全域交易識別碼 (GTIDs) 與 Aurora My 複寫交易SQL。若要瞭解如何使用以 Aurora My 為基礎GTIDs的複寫SQL,請參閱使用GTID基礎複製

我的匿名交易(Aurora 我的版本 3)SQL

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

語法

CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);

參數

gtid_option

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

使用須知

此程序與在我的社群CHANGE REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = gtid_option中發表聲明具有相同的效果SQL。

GTID必須轉ONgtid_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)

清除了 Aurora(我的版本 3)SQL

將系統變數的全域值設定gtid_purged為指定的全域交易識別碼 (GTID) 集。系gtid_purged統變數是由伺服器上已認可GTIDs的所有交易組成的GTID集合,但伺服器上的任何二進位記錄檔中都不存在。

要允許與 My SQL 8.0 兼容,有兩種方法可以設置值gtid_purged

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

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

語法

若要以您指定的GTID集取代gtid_purged的值,請執行下列動作:

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_executed容。所以此 gtid_set 參數也不能包含全局gtid_owned集中GTIDs的任何內容,也不能包含當前正在服務器上處理的事務。GTIDs

使用須知

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

Aurora 我的SQL版本 3.04 及更高版本支援此程序。

範例

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

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

與 gtid(Aurora 我的版本 2 和 3)SQL

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

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

語法

CALL mysql.rds_skip_transaction_with_gtid ( gtid_to_skip );

參數

gtid_to_skip

要略過GTID的複寫交易。

使用須知

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

Aurora 我的SQL版本 2 和 3 支援此程序。

範例

下列範例會略過與交易的複寫。GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23

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

我的 Aurora 復制(極光我的版本 3)SQL

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

語法

CALL mysql.rds_start_replication_until_gtid(gtid);

參數

gtid

之GTID後要停止複寫。

使用須知

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

Aurora 我的SQL版本 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');