DBAtlas · Atlas de operações de banco de dados

1197: Multi-statement transaction required more than 'max_binlog_cache_size' (a transação com vários comandos exigiu mais que 'max_binlog_cache_size')

MySQL

O que significa?

Os dados de binlog gerados por uma única transação excederam o limite de memória/cache definido por max_binlog_cache_size. A transação não coube no binary log, por isso falhou e sofreu rollback.

Por que acontece?

Uma transação muito grande (um único INSERT/UPDATE/DELETE de milhões de linhas ou uma carga em massa enorme) encheu o cache do binlog. Com o binary logging habilitado (replicação/recuperação point-in-time), transações grandes podem facilmente exceder esse limite.

Como resolver

Divida a transação grande em lotes menores; faça COMMIT após cada lote. Se transações realmente grandes forem inevitáveis, aumente max_binlog_cache_size (e binlog_cache_size, se necessário). Em cargas ETL/em massa, uma carga em blocos com COMMITs intermediários evita tanto este erro quanto locks mantidos por muito tempo.

Abrir no DBAtlas →

Mais entradas deste banco