Alipaşa Mah. Yeni Hükümet Cad. No:14/110, Tokat 0 356 214 70 65 bilgi@sur.com.tr Online mağaza English

SQL Server log dosyası (LDF) şişti, disk doldu: neden olur, nasıl çözülür?

SQL Server veritabanının log dosyası veri dosyasından kat kat büyük hâle geldiyse ve disk dolmak üzereyse sebep çoğu zaman kurtarma modeli ile yedekleme düzeninin uyumsuzluğudur. Güvenli çözümü anlatıyoruz.

Sunucu Güncellendi: 2 dk okuma

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.

SQL Server tam kurtarma modelinde log yedeği alınmadığında log dosyasının büyüyüp diski doldurması
Çözüm silmek değil, yedekleme düzenini düzeltmektir.

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?
Hayır. Log dosyasını elle silmek veritabanının açılmamasına ve veri kaybına yol açabilir. Doğru yöntem yedekleme düzenini düzeltmek ve kontrollü küçültmektir.
Basit kurtarma modeline geçmek çözüm mü?
Log büyümesini durdurur, ama son tam veya fark yedeğinden sonraki işlemleri geri alma imkânını kaldırır. İşletmenin veri kaybı toleransına göre karar verilmelidir.
Küçültme (shrink) işlemini sürekli yapmalı mıyım?
Hayır. Sürekli küçültme performansı düşürür ve dosya yeniden büyür. Asıl neden giderildikten sonra bir kez makul boyuta küçültmek yeterlidir.

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…

Veritabanı Yedekleme Yazılımı
Blog

İlgili yazılar