DBAtlas · Atlas für Datenbankbetrieb

1197: Multi-statement transaction required more than 'max_binlog_cache_size'

MySQL

Was bedeutet das?

Die von einer einzelnen Transaktion erzeugten Binlog-Daten haben das durch max_binlog_cache_size festgelegte Speicher-/Cache-Limit überschritten. Die Transaktion passte nicht ins Binary Log, ist daher fehlgeschlagen und wurde zurückgerollt.

Ursache

Eine sehr große Transaktion (ein einzelnes INSERT/UPDATE/DELETE von Millionen Zeilen oder ein riesiger Bulk Load) hat den Binlog-Cache gefüllt. Bei aktiviertem Binary Logging (Replikation/Point-in-Time-Recovery) können große Transaktionen dieses Limit leicht überschreiten.

Lösung

Teile die große Transaktion in kleinere Batches auf; führe nach jedem Batch COMMIT aus. Sind wirklich große Transaktionen unvermeidbar, erhöhe max_binlog_cache_size (und bei Bedarf binlog_cache_size). Bei ETL/Bulk Loads verhindert ein Laden in Blöcken mit zwischenzeitlichen COMMITs sowohl diesen Fehler als auch lange gehaltene Sperren.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank