SQL Server VLF Sayısı Sağlığı

Transaction log içindeki `VLF` sayısını ve durumunu inceleyin. Kontrolsüz log büyümesinin izlerini moon ile takip edin.

2026-09-28 · 2 dakika okuma

Problem neden önemlidir?

Tekrarlanan küçük log büyümeleri çok sayıda sanal log dosyası, yani VLF, oluşturabilir. Aşırı parçalı log düzeni kurtarma, geri yükleme ve log yönetimi işlemlerini olumsuz etkileyebilir.

Nasıl teşhis edilir?

sys.dm_db_log_info ile her veritabanındaki toplam ve aktif VLF sayısını ölçün. Sayıyı veritabanının yaşı, log boyutu ve büyüme geçmişi bağlamında değerlendirin.

Sorgu yalnızca çevrimiçi veritabanlarının VLF sayılarını okur. Yüksek görünen bir değer, log boyutu ve operasyon süreleri ölçülmeden tek başına müdahale gerekçesi değildir.

SELECT d.name,
       COUNT(*) AS vlf_count,
       SUM(CASE WHEN li.vlf_active = 1 THEN 1 ELSE 0 END) AS active_vlf_count
FROM sys.databases AS d
CROSS APPLY sys.dm_db_log_info(d.database_id) AS li
WHERE d.state_desc = 'ONLINE'
GROUP BY d.name
ORDER BY vlf_count DESC;

Güvenli çözüm yaklaşımı

Önleme yaklaşımı, logu beklenen çalışma yüküne göre boyutlandırmak ve uygun büyüme adımları kullanmaktır. Mevcut düzeni yeniden oluşturmak üretim işlemleri gerektirebileceğinden bakım penceresinde ayrıca planlanmalıdır.

Sürekli monitoring neden gerekir?

VLF sayısı genellikle tek olayda değil, zaman içinde biriken büyümelerle kötüleşir. moon log kapasitesi ve büyüme eğilimlerini izleyerek Slack, PagerDuty veya webhook üzerinden erken uyarı sağlayabilir.

Sık sorulan sorular

İdeal VLF sayısı için sabit bir eşik var mı? Aktif VLF ile toplam sayı aynı şeyi mi gösterir?

Hayır, her boyuttaki veritabanına uyan tek bir güvenli eşik yoktur. Aktif sayı mevcut log kullanımını, toplam sayı ise logun fiziksel düzenini anlamaya yardımcı olur.

moon bu konuda nasıl yardımcı olur?

moon, SQL Server, PostgreSQL ve MongoDB sinyallerini sürekli izleyerek problemi anlık bir kontrolden ziyade zaman içindeki davranışıyla değerlendirmeye yardımcı olur.