Transaction Log dosyası SQL veritabanına yapılan tüm değişiklikleri (transactions)ve bunlara ait detayları içeren dosyadır.


Eğer veritabanı TLog özelliklerinde bu dosya otomatik olarak büyüyecek şekilde ayarlanmışsa ve düzenli olarak yedeği alınmıyorsa dosya boyutu çok fazla büyüyebilir.


Bazı açıklamalar:


Her yedek alındıktan sonra SQL server Tlog dosyasını truncate eder. Truncate işlemi tamamlanmış transaction kayıtlarını log dosyasından siler. Böylece yeni işlemler yapıldıkça dosya boyutu büyümez, dosya içerisinde temizlenen alanlar kullanılır.


Dosyanın fiziksel boyutunu küçültmek için shrink işlemi yapılmalıdır.


ÖNEMLİ: SHRINK işlemi sırasında sistem değişik hatalar verebilir. Aşağıdaki işlemleri

"Cannot shrink log file because all logical log files are in use." hatası verdiğinde uyguladım ve sonuç başarılı oldu.


Dosya boyutunu küçültmek için yapılacaklar:

Burada verilen komutlar SQL Query Analyzer'da komut alanına yazarak uygulanır.



Backup Log DB_adi TO DISK='E:\Istenen_Bir Backup_Adi.TRN, TRUNCATEONLY'

SELECT * FROM sysfiles

Bu komut log dosyasının (LDF dosyası) FileID'sini gösterir. Bu 2 olmalıdır.


DBCC SHRINKFILE(2,TRUNCATEONLY)

DBCC SHRINKFILE(2,50)

Buradaki 2 log dosyası FileID'si, 50 ise dosyayı 50 MB'a kadar küçült anlamındadır.


Backup Log DB_adi TO DISK='E:\Istenen_Bir Backup_Adi.TRN'

DBCC SHRINKFILE(2,50)

Şimdi tekrar:


SELECT * FROM sysfiles

komutu verilir ve log dosyası boyutu kontrol edilir.