SQL Server Veritabanı Recovery Modelleri
SQL Server Recovery model transaction’ların nasıl loglanacağının kontrol edilmesini sağlayan bir veritabanı özelliğidir. Recovery Model türüne göre High Availability seçeneklerini kullanabilir ve Bazı backup alma özelliklerinden faydalanabiliriz.
SQL Server ile 3 çeşit Recovery model karşımıza çıkmakta;
– Full Recovery Model
– Simple Recovery Model
– Bulk Logged Recovery Model
Full Recovery Model: Database üzerinde gerçekleşen bütün transaction’ların loglandığı modeldir. İlgili Database üzerinde hiçbir şekilde veri kaybına tahammülümüz yok ise tercih edeceğimiz tek model Recovery Model’dir. Bu Recovery türü sayesinde ayrıca Archive Log Backup alabiliriz ve bu sayede gerçek zamanlı restore yapılabilir.
Full Recovery Model’i kullanıyorsak mutlaka Archive log backup almalıyız. Eğer log backup almaz isek ilgili DB üzerinde yapılan bütün işlemler loglanacağı için ve otomatik olarak silinmediği için bir süre sonra diskimizi dolduracaktır. Log Backup aldığımızda Transaction Log dosyasında kaydedilen bu loglar silineceği için bu sorun ile karşılaşmamız olacağız. Log Backup hangi sıklıkla alınacak derseniz bu sizin şirketinizin politikası ve ne kadarlık veri kaybına tahammülünüzün olduğu ve dolaylı olarak kullandığınız backup yazılımı ve medyası ile orantılı olarak değişebilir.
Simple Recovery Model: Database üzerinde gerçekleşen bütün Transaction’lar loglanır ancak SQL Server’da checkpoint işlemi gerçekleştiğinde loglanan bu transaction’lar otomatik olarak silinir ve transaction log dosyası çoğunluk ile büyümez. Bazen tek bir transaction log dosyasının boyutunu çok büyütebilir. Bu şekilde büyük bir transaction gelirse SQL Server Log dosyasını transaction bittikten sonra shrink edebilirsiniz. SQL Server Log Dosyasının nasıl Shrink edileceğini buradan inceleyebilirsiniz.
Bu model’i çoğunlukla test ve geliştirme gibi ortamlarda kullanılmasını öneririm canlı ortamlarda sorun oluştuğunda sıkıntıya düşebilirsiniz. Ayrıca bu model SQL Server Always ON, Database Mirroring ve Log Shipping gibi işlemleri desteklemez.
Bulk Logged Recovery Model: Genelde pek tercih edilmeyen recovery modeldir. Full Recovery Model’den ne farkı var derseniz (SELECT INTO, BULK INSERT, BCP, CREATE INDEX) gibi Bulk işlemlerin tamamı loglanmaz. Bu modelde bulk işlemlerin yoğun olduğu veritabanlarında transaction log dosyasının aşırı büyümesinin önüne geçilmiş olacaktır.
Veritabanı Recovery Model nasıl değiştirilir merak ediyorsanız buradaki makalemi inceleyebilirsiniz.