DBAtlas · Veritabanı operasyon atlası

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

MySQL

Ne demek?

Tek bir transaction'ın ürettiği binlog verisi, max_binlog_cache_size ile tanımlanan bellek/önbellek sınırını aştı. Transaction binary log'a sığmadığı için başarısız oldu ve geri alındı.

Neden olur?

Çok büyük bir işlem (milyonlarca satırlık tek bir INSERT/UPDATE/DELETE ya da devasa bir toplu yükleme) binlog önbelleğini doldurdu. Binary logging etkinken (replikasyon/point-in-time recovery) büyük işlemler bu sınırı kolayca aşabilir.

Nasıl çözülür?

Büyük transaction'ı daha küçük parçalara (batch) bölerek işleyin; her partiden sonra COMMIT edin. Gerçekten büyük transaction'lar kaçınılmazsa max_binlog_cache_size değerini (ve gerekirse binlog_cache_size) artırın. ETL/toplu yüklemelerde parçalı yükleme ve ara COMMIT stratejisi hem bu hatayı hem de uzun lock'ları önler.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar