Recovery Model SQL
Servera ait bir veritabanı özelliği Transaction Logların nasıl tutulduğuna
karar vermemizi sağlar.
SQL Serverda 3 çeşit
recovery model vardır.
1.Full Recovery
Model
2.Simple Recovery
Model
3.Bulk Logged
Recovery Model
Full Recovery Model
Bu modelde Sql
Serverda yapılan tüm işlemler transaction log dosyasına kaydedilir ve bizim
tarafımızdan silinme işlemi gerçekleşmedikçe silinmezler. Her işlem transaction
loglara yazıldığı için en güvenilir recovery modeldir. Ancak ilerleyen
zamanlarda transaction loglar büyüyeceği için belirli periyodlarda
silinmelidir. İki farklı yöntemle silebiliriz. Birinci yöntem backup almak
ikinci yöntem ise transaction logların shrink edilmesidir.
SIMPLE Recovery Model
Simple Recovery modeldeki veritabanlarında
tutulan transaction loglar Checkpoint işleminden sonra silinirler. Bu nedenle
Simple Recovery modelde transaction logların sürekli
büyümesi söz konusu değildir. Simple Recovery modelde log
yönetimi kolay olmasına rağmen Simple Recovery modelin dezavantajı ise geriye
dönük transaction loglar silindiği için transaction logların yedeklenmesi ve
dolayısıyla restore işlemleri mümkün değildir. Bu nedenle veri kaybı olaslığı
çok büyüktür.
Bulk Logged Recovery Model
Bulk
Logged Recovery Modelde Full Recovery modelden farklı olarak bulk işlmeler
dışında tüm işlemler loglanırken herhangibir bulk işlem
yapıldığında tüm işlem için tek bir kayıt log dosyasına yazılır. Bu gibi
durumlarda veritabanımızı herhangibir zamana restore etmek mümkün olmaz. Bulk Logged Recovery Modelde bulk işlemler
tek tek transaction log dosyasına yazılmadığı için Full Recovery modele göre
bulk işlemler daha hızlı yapılır.
Veritabanının Recovery Modelinin
Değiştirilmesi
Veritabanımızın
recovery modelini değiştirmek için Management Studio kullanabileceğimiz gibi
TSQL komutları ilede değiştirebiliriz.
ALTER DATABASE
AdventureWorks SET RECOVERY SIMPLE
ALTER DATABASE
AdventureWorks SET RECOVERY FULL
ALTER DATABASE
AdventureWorks SET RECOVERY BULK_LOGGED