壊れたトランザクションをスキップ(GTID)
MySQLレプリケーションコマンド
STOP REPLICA; SET GTID_NEXT='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:15'; BEGIN; COMMIT; SET GTID_NEXT='AUTOMATIC'; START REPLICA;概要
指定したGTIDに対して空のトランザクションをコミットし、そのトランザクションを「適用済み」として扱わせ、レプリケーションを先に進める。
使用する場面
レプリカ上の重複/適用不能なイベントがレプリケーションを停止させたときに、そのイベントをスキップするため。
注意
トランザクションをスキップすると、レプリカとソースの間にデータの不整合が生じる。スキップするイベントの影響がわかっている場合にのみ使用する。GTIDの値はSHOW REPLICA STATUSのLast_Error / Retrieved_Gtid_Setから取得する。GTIDが無効な場合は、SET GLOBAL sql_replica_skip_counter = 1;を使用する(8.0.26以降。以前はsql_slave_skip_counterで、8.0.26以降は非推奨の別名)。