Fehlerhafte Transaktion überspringen (GTID)
MySQLReplikationBefehl
STOP REPLICA; SET GTID_NEXT='aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee:15'; BEGIN; COMMIT; SET GTID_NEXT='AUTOMATIC'; START REPLICA;Was es tut
Committet eine leere Transaktion für die angegebene GTID, sodass diese Transaktion als 'angewendet' gilt, und lässt die Replikation weiterlaufen.
Wann einsetzen
Wenn ein doppeltes/nicht anwendbares Event auf der Replica die Replikation stoppt, um dieses Event zu überspringen.
Vorsicht
Das Überspringen einer Transaktion erzeugt Dateninkonsistenz zwischen Replica und Quelle; nur verwenden, wenn du die Wirkung des übersprungenen Events kennst. Den GTID-Wert aus Last_Error / Retrieved_Gtid_Set in SHOW REPLICA STATUS entnehmen. Ist GTID aus, SET GLOBAL sql_replica_skip_counter = 1; verwenden (ab 8.0.26; vorher sql_slave_skip_counter, ab 8.0.26 ein veralteter Alias).
Verwandte Einträge
- Replica einrichten (CHANGE REPLICATION SOURCE)
- Replica starten / stoppen
- Replica-Status anzeigen (SHOW REPLICA STATUS)
- Replica-Lag und Fehler der Applier-Worker überwachen (performance_schema)
- Multi-Threaded Replica optimieren (replica_parallel_workers)
- Defekte Replica reparieren: Zeilenkonflikte 1062 / 1032