Veeam Yedeklemesinde MS SQL ve Exchange VSS Writer Hataları (0x8004231f) ve Log Truncation Sorunları
Bir sistem yöneticisinin Veeam konsolunda en sık gördüğü kırmızı hata mesajı şudur: "Processing SQL-PROD Error: VSSControl: Cannot freeze guest methods using VSS. Transaction logs will not be truncated." Bu durum yalnızca yedeğin yarım kalmasına yol açmaz; temizlenemeyen SQL veya Exchange .ldf log dosyalarının diski tamamen doldurarak veritabanını kilitlemesine neden olur. VSS mekanizmasını ve hata çözümlerini inceliyoruz.
1. Windows VSS (Volume Shadow Copy) Mantığı
Veeam gibi kurumsal yedekleme yazılımları canlı bir SQL sunucusunun yedeğini alırken makineyi durduramaz. Microsoft VSS servisi şu sırayla çalışır:
- VSS Requestor (Veeam): İşletim sistemine "Yedek alıyorum, hazırlanın" der.
- VSS Writer (SqlServerWriter / ExchangeWriter): Bellekteki (RAM) tamamlanmış verileri hızla diske yazar, yeni gelen yazma isteklerini birkaç saniyeliğine bellekte bekletir (Freeze).
- VSS Provider: Diskin anlık gölge kopyasını (Shadow Copy) oluşturur.
- Thaw (Serbest Bırakma): Bekleyen işlemler diske yazılmaya devam eder.
- Log Truncation: Başarılı yedek sonrası eski işlem logları (.ldf) silinerek disk alanı boşaltılır.
2. VSS Writer Durumunu Teşhis Etme
Komut istemini (CMD) yönetici olarak açıp VSS yazıcılarının durumunu sorgulayın:
vssadmin list writers
Eğer çıktıda SqlServerWriter veya Microsoft Exchange Writer için:
State: [8] Failed veya Last error: Non-retryable error görüyorsanız o servis kilitlenmiştir.
3. Adım Adım Sorun Giderme Reçetesi
Adım 1: Gölge Depolama Alanı Boyutunu Artırma (Hata 0x8004231f)
Genellikle VSS alanı yetersiz kaldığında gölge kopya patlar:
# Gölge kopya depolama alanını sınırsız (Unbounded) yapma
vssadmin resize shadowstorage /for=C: /on=C: /maxsize=unbounded
vssadmin resize shadowstorage /for=D: /on=D: /maxsize=unbounded
Adım 2: Kilitlenen Writer'ı Yeniden Başlatma
Sunucuyu yeniden başlatmadan VSS yazıcısını ayağa kaldırmak için ilgili Windows servisini yeniden başlatın:
- SQL Server Writer için:
SQL Server VSS Writerservisini yeniden başlatın. - Exchange için:
Microsoft Exchange Information Storeservisini yeniden başlatın.
Restart-Service -Name "SQLWriter" -Force
Adım 3: SQL Yetkilendirmesi (Sysadmin Rolü)
Veeam'in sanal makine içine enjekte ettiği misafir ajanın (Guest Interaction Proxy) SQL üzerinde işlem yapabilmesi için, Veeam servis hesabının SQL Server üzerinde Sysadmin rolüne sahip olması şarttır!
Karşılaşılan Kritik Hatalar ve Çözüm İpuçları
- Auto-Close Özelliğinin Açık Kalması: Bazı küçük veritabanlarında
AUTO_CLOSE = ONbırakılmıştır. VSS snapshot anında veritabanı kapandığı için SqlServerWriter çöker. Tüm SQL veritabanlarında AUTO_CLOSE özelliği kapatılmalıdır:
ALTER DATABASE [OrnekDB] SET AUTO_CLOSE OFF;
- Üçüncü Parti Snapshot Çakışması: Sunucuda aynı anda hem Windows yerel gölge kopyası (Shadow Copies) hem de SAN depolama snapshot'ı tetikleniyorsa VSS kilitlenir. Yedekleme saatlerinde diğer snapshot görevleri durdurulmalıdır.
Mühendis Notu
Log truncation çalışmadığında geçici çözüm olarak SQL log dosyasını SHRINK edip geçmeyin. Kök neden VSS Writer'ın yedekleme sırasında hata almasıdır. Sorunu VSS seviyesinde çözmediğiniz sürece o disk 3 gün sonra tekrar dolacaktır.
