SQL Server Veritabanı Recovery Modelleri
Sql Server Recovery model bir veritabanı özelliği olup transaction logların nasıl tutulacağına karar vermemize yarar. Sql Server’da herhangi bir veritabanı için 3 çeşit recovery model seçeneği mevcuttur.
1 Simple Recovery Model
2-Full Recovery Model
3-Bulk Logged Recovery Model
SİMPLE RECOVERY MODEL
Simple Recovery Modeldeki veritabanlarında bulunan transaction loglar, yapılan checkpoint işleminden sonra silinirler. Bundan dolayı bu modelde tutulan transaction loglar sürekli büyümez. Simple recovery modelde log yönetimi kolaydır ancak handikapı ise, geriye dönük transaction loglar silindiği için bunların yedeklenmesi(backup) ve dolayısıyla yedekten dönmesi (restore) işlemi de mümkün olmayacaktır. Bundan dolayı veri kaybı olasılığı azımsanmayacak kadar büyüktür.
FULL RECOVERY MODEL
Eğer veritabanımızda veri kaybına yol açmak istemiyorsak Full Recovery Model tercih edilmelidir. Bu modelde SQL Server’da yapılan tüm işlemler transaction log dosyasına kaydedilir ve kullanıcı tarafından silme işlemi yapılmadan silinmezler. Bu nedenle bu modeldeki bir veritabanı için backup ve restore işlemleri mümkündür. Her işlem transaction log dosyasına kaydedildiği için en güvenilir recovery modelidir. İlerleyen zamanlarda transaction loglar büyüyeceği için belli aralıklarla silinmelidir.
İki farklı yöntemle silebiliriz. Bunlardan birincisi backup almak ikincisi ise transaction logların shrink edilmesi işlemidir.
BULK LOGGED RECOVERY MODEL
Bulk (Toplu) işlemler yaparken transaction log dosyasının büyümediği modeldir.Bulk işlemler dışında bütün her şey loglanır ve bulk işlemler yapılırken her işlem için bir kayıt değil, bütün bulk işlemi için bir kayıt loglanır.Bu durumlarda veritabanımızı belli bir zamana restore işlemini gerçekleştiremeyiz. Bulk işlemler bir bir transaction log dosyasına yazılmadığı için bu işlemler Full Recovery Modele göre daha hızlı yapılır.
VERİTABANI RECOVERY MODELİNİN DEĞİŞTİRİLMESİ
Bir çok işlem gibi veritabanımızın Recovery modelini değiştirmek için de T-sql kodlarından veya SQL Server Management Studio aracını kullanarak işlemi gerçekleştireceğimiz veritabanı üzerine sağ tıklayıp,properties seçeneğini seçtikten sonra options kısmından değiştirebilirsiniz.
T-sql koduyla değiştirmek için;
ALTER DATABASE databaseAdı SET RECOVERY recoverysecenegi sorgusuyla değiştirebilirsiniz.
Bir sonraki yazımda görüşmek üzere 🙂