22 Temmuz 2014 Salı

SQL Server Recovery Modelleri


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

Sql Server DateTime Veri Tipindeki Datayı Türkçe Formatında Göstermek

  SQL'de tarihleri farklı formatlarda göstermek için FORMAT fonksiyonunu kullanabilirsiniz. Türkçe kısa tarih formatı genellikle "...