İçeriğe geç
Asena Bilgisayar 1989'dan bu yana Mikro Yazılım İş Ortağı — Asena Bilgisayar yetkili iş ortağıdır

SQL Server log dosyası (.ldf) neden büyür, nasıl küçültülür?

Son güncelleme:

Seviye: Uzman seviyesi Sürüm: V16 ve V17 Ürünler: Mikro Jump, Mikro Fly

Log dosyasının diski doldurması, tek başına bir arıza değil — bir yapılandırma uyuşmazlığının belirtisi.

Sebep neredeyse her zaman aynı

Veritabanı FULL recovery model’de ama transaction log yedeği alınmıyor.

FULL modelde SQL Server, her işlemi log dosyasında tutuyor ve bu kayıtları ancak log yedeği alındığında serbest bırakıyor. Log yedeği hiç alınmazsa dosya sonsuza kadar büyüyor.

Tam (full) veritabanı yedeği almak bu döngüyü kırmıyor — çok yapılan bir karıştırma.

İki yoldan biri seçilmeli

Log yedeklemeyi planlayın. Noktasal geri dönüş yapabilmek istiyorsanız doğru olan bu. Günde birkaç kez log yedeği alınır ve dosya kontrol altında kalır.

Ya da recovery model’i SIMPLE yapın. Bu durumda log dosyası kendini yönetiyor ama noktasal geri dönüş imkânınız kalmıyor — yalnızca son tam yedeğe dönebiliyorsunuz.

Hangisinin doğru olduğu teknik değil iş kararı: en fazla ne kadarlık veri kaybını göze alıyorsunuz?

Shrink kalıcı çözüm değil

Ayar düzeltilmeden yapılan shrink, dosyanın birkaç hafta içinde tekrar büyümesiyle sonuçlanıyor. Üstelik her shrink–büyüme döngüsü disk üzerinde parçalanma üretiyor ve performansı düşürüyor.

Önce sebebi düzeltin, shrink’i sadece bir kez, düzeltmeden sonra yapın.

Büyüme ayarı

Log dosyasına yüzde bazlı büyüme (ör. %10) vermek, dosya büyüdükçe her büyümenin daha uzun sürmesine yol açıyor. Sabit bir MB değeri vermek daha öngörülebilir sonuç veriyor.

Adım adım

  1. Veritabanının recovery model ayarını kontrol edin: Database Properties › Options › Recovery model.
  2. Recovery model FULL ise, düzenli transaction log yedeği alınıp alınmadığını kontrol edin.
  3. Log yedeği alınmıyorsa iki seçenek var: ya log yedeklemeyi planlayın ya da recovery model’i SIMPLE’a çevirin.
  4. Kararı vermeden önce ne kadarlık veri kaybını göze aldığınızı (RPO) netleştirin — SIMPLE modelde noktasal geri dönüş yapılamaz.
  5. Ayarı düzelttikten sonra log dosyasını küçültün (shrink), ama bunu rutin hale getirmeyin.
  6. Log dosyasına makul bir başlangıç boyutu ve sabit büyüme adımı verin; yüzde bazlı büyüme parçalanma üretir.

Çözemediyseniz bakalım

Hata mesajının tam metnini ve ne zaman başladığını iletin; hangi katmandan geldiğini söyleyelim. Mikro’yu bizden almamış olmanız fark etmiyor.

Yanıt süremiz: aynı gün içinde.

Sık sorulan sorular

  • Hayır. Log dosyası silinirse veritabanı açılmaz. Yapılması gereken, log kayıtlarının işlenmesini sağlamak ve dosyayı küçültmektir.

  • Veri kaybı toleransınıza bağlı. SIMPLE modelde yalnızca son tam yedeğe dönebilirsiniz; aradaki işlemler kaybolur. Günlük yedekle çalışan çoğu KOBİ için kabul edilebilir, ancak bu bir iş kararıdır.

  • Hayır. Düzenli shrink, dosyanın tekrar büyümesine ve disk parçalanmasına yol açar. Shrink tek seferlik bir düzeltmedir; kalıcı çözüm recovery model ile yedekleme planını uyumlu hale getirmektir.