DBAtlas · Atlas de operaciones de bases de datos

1197: Multi-statement transaction required more than 'max_binlog_cache_size' (la transacción de varias sentencias requirió más que 'max_binlog_cache_size')

MySQL

¿Qué significa?

Los datos de binlog generados por una sola transacción superaron el límite de memoria/caché definido por max_binlog_cache_size. La transacción no cupo en el binary log, por lo que falló y se revirtió.

¿Por qué ocurre?

Una transacción muy grande (un único INSERT/UPDATE/DELETE de millones de filas o una carga masiva enorme) llenó la caché del binlog. Con el binary logging habilitado (replicación/recuperación a un punto en el tiempo), las transacciones grandes pueden superar fácilmente este límite.

Cómo solucionarlo

Divida la transacción grande en lotes más pequeños; haga COMMIT tras cada lote. Si las transacciones realmente grandes son inevitables, aumente max_binlog_cache_size (y binlog_cache_size si es necesario). En ETL/cargas masivas, una carga por fragmentos con COMMIT intermedios evita tanto este error como los bloqueos mantenidos durante mucho tiempo.

Abrir en DBAtlas →

Más entradas de este motor