本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用複製交易 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
-
字串值。允許的值為
OFF
LOCAL
、或指定UUID。
使用須知
此程序與在我的社群CHANGE REPLICATION SOURCE TO
ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS =
中發表聲明具有相同的效果SQL。gtid_option
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)
清除了 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');