Sunucuda disk alanı uyarısı geldi; incelediğinizde ticari programın veritabanının veri dosyası birkaç gigabayt, ama log dosyası (LDF) onlarca gigabayt. Bu durum SQL Server veritabanlarında çok sık görülür ve neredeyse her zaman aynı nedene dayanır.
Log dosyası ne işe yarar?
SQL Server, veritabanında yapılan her değişikliği önce log dosyasına yazar. Bu sayede elektrik kesintisi gibi durumlarda veritabanı tutarlı kalır ve uygun yedekleme düzeninde belirli bir ana kadar geri dönüş yapılabilir.
Neden şişer?
Veritabanı tam kurtarma modelindeyse, log kayıtları ancak log yedeği alındığında temizlenebilir. Veritabanı bu modelde kurulmuş ama düzenli log yedeği alınmıyorsa log dosyası sürekli büyür. Birçok kurulumda varsayılan ayarlar bu duruma yol açar; kimse fark etmeden log dosyası aylar içinde diski doldurur. Daha az sıklıkla, çok uzun süren açık işlemler veya çoğaltma (replikasyon) ayarları da büyümeye neden olabilir.

Yapılmaması gerekenler
- Log dosyasını SQL Server durdurulup elle silinmemelidir; veritabanı açılmayabilir.
- Küçültme işlemi asıl neden giderilmeden tekrar tekrar yapılmamalıdır.
- Disk tamamen dolana kadar beklenmemelidir; dolu diskte veritabanı yazma yapamaz ve program durur.
Doğru çözüm
1. Kurtarma modeline karar verin
İşletme son tam yedekten sonraki birkaç saatlik veriyi kaybetmeyi göze alabiliyorsa basit kurtarma modeli yeterli olabilir; log otomatik temizlenir. Gün içindeki her işlemin korunması gerekiyorsa tam kurtarma modeli ve düzenli log yedekleri gerekir.
2. Log yedeklerini başlatın
Tam kurtarma modelinde kalınacaksa log yedekleri belirli aralıklarla alınmalıdır. Bu hem log dosyasını kontrol altında tutar hem de belirli bir ana geri dönüş imkânı sağlar.
3. Bir kez kontrollü küçültün
Yedek düzeni oturduktan sonra log dosyası, normal çalışma için gereken makul bir boyuta bir kez küçültülür.
Yedekleme stratejisiyle birlikte
Log dosyası sorunu aslında bir yedekleme stratejisi sorunudur. Tam, fark ve log yedeklerinin nasıl birlikte çalıştığını SQL Server yedekleme stratejisi yazımızda anlattık. Disk doluluğunu önceden haber veren bir izleme de bu sorunun sürpriz olmasını engeller.
Sur Bilgisayar'ın kendi geliştirdiği veritabanı yedekleme yazılımı, sistemdeki tüm veritabanlarını her gün belirlenen saatte yedekler, şifreler ve üç farklı lokasyona gönderir. Ayrıntılar için veritabanı yedekleme yazılımı sayfamıza bakabilirsiniz.
Sık sorulan sorular
Log dosyasını silebilir miyim?
Basit kurtarma modeline geçmek çözüm mü?
Küçültme (shrink) işlemini sürekli yapmalı mıyım?
Bu konuda destek mi lazım?
Kendi geliştirdiğimiz yazılım, sunucudaki SQL Server, MySQL ve Firebird veritabanlarını her gün belirlenen saatte yedekler, şifreler ve 3…
