DBAtlas · データベース運用アトラス

壊れたトランザクションをスキップ(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以降は非推奨の別名)。

DBAtlas で開く →

関連項目