SQL Server Veritabanı Loglama Seçenekleri

SQL Server Veritabanı Loglama Seçenekleri

Bugünki yazımda sizlere SQL Server veritabanı loglama seçeneklerinden bahsedeceğim. Bu yazıda bahsettiğim konu başlıkları aşağıdaki gibidir.

  1. Veritabanı Loglama seçenekleri nelerdir?
  2. Veritabanımızın Recovery Model’ine bakma yöntemleri nelerir?
  3. Veritabanımızın Recovery Model’ini nasıl değiştirebilirim?

1. Veritabanı Loglama seçenekleri nelerdir?

SQL Server’ın transaction log’ların saklanma biçimine göre bize sunmuş olduğu üç farklı recovery model bulunmaktadır. Bunlar;

  • Simple Recovery Model
  • Bulk-Logged Recovery Model
  • Full Recovery Model

Şimdi recovery modelleri biraz daha ayrıntılı inceleyelim.

1.1 : Simple Recovery Model:

  • Bu modelde transaction log backup alınması SQL Server tarafından desteklenmemektedir.
  • Bütün transactionlar loglanır ancak, SQL Server checkpoint işlemi gerçekleştiğinde transactionlar otomatik olarak silinir.
  • Log’ların silinme işlemi otomatik olarak yapılmakta ve disk içerisinde ki alan tekrardan kullanılabilir olmasını SQL Server bize kendisi sağlamaktadır. Bu modelde data kaybı riski bulunmaktadır.
  • Test db’leri gibi değişimi ve veri kaybı önemli olmayan veritabanları için tercih edilir. (Belli bir zamana dönme zorunluluğu gerektirmeyen).
  • Database Mirroring, Log Shipping, AlwasyO gibi SQL Server’ın teknolojilerini desteklemez.

1.2 : Full Recovery Model :

  • Her değişim loglanır. İstenilen noktaya dönülebilir. Herhangi bir sorun olduğunda son ana kadar dönebilmemiz için veritabanımızın Recovery Model’i FULL olmalıdır.
  • Yeni bir veritabanı için varsayılan seviyedir. Bunun sebebi kurulumdan sonra model veritabanımızın Recovery Model’i varsayılan olarak Full olmasından dolayıdır. Sistem veritabanlarını anlatan yazımda bunlara daha ayrıntılı değineceğim.
  • Bu modelde veritabanı üzerinde gerçekleştirilen tüm Transaction’lar “.ldf” dosyalarında tutulur.
  • Bütün transactionlar log’landığı için bu modelde trasaction log’lar oldukça hızlı bir şekilde büyüme eğilimindedirler.
  • Loglar otomatik silinmez üzerinde çok işlem yapılan veritabanlarında transaction. Log’larının çok hızlı büyümesi sonucu diskler dolabilir ve bu da veritabanında yeni bir işlem yapılmasını engeller.

Full Recovery Model’de Transaction log dosyalarının silinmesi için 2 yöntem vardır :

  1. Transaction log’larının yedeklenmesi
  2. Veritabanı recovery modelinin Simple yapılması

1.3 : Bulk-Logged Recovery Model :

  • Toplu işlemler yapmak istediğimizde, ama bu toplu işlemlerin Transaction Log dosyamızı büyütmesini istemediğimizde kullanırız. (SELECT INTO, ULK INSERT, BCP, CREATE INDEX vb. gibi işlemlerde tamamı loglanmaz)
  • Bu model Full Recovery Model ile birlikte kullanılmalıdır.
  • Full’de her işlemin kaydı tutulur ve hata anında dönebiliriz ama Bulk Logged’de toplu(bulk) işlem yapıldığında ve o anda veritabanında bir hasar oluştuğunda hata anına geri dönemezsiniz.

2. Veritabanımızın Recovery Modelini Kontrol Etme

Vertitabanımızın Recovery Model’ine 4 farklı method ile bakabilmekteyiz.

Method 1: Bakmak istediğimiz veritabanımızda sağ tıklayıp Properties dedikten sonra, Options kısmından kontrol edebiliriz.

Method 2: View → Object Explorer Details diyerek de bakabilmekteyiz.

Method 3: Aşağıdaki sorgu ile de tüm veritabanlarının recovery modellerini listeleyebiliriz

SELECT name AS [Database Name],
recovery_model_desc AS [Recovery Model] FROM sys.databases
GO

Method 4: Sadece tek bir veritabanının recovery modeline bakmak istiyorsak aşağıdaki sorgu ile bakabiliriz.

Örneğin TESTdb veritabanımız için bakmak isteyelim:

SELECT 'TESTdb' AS [Database Name],
DATABASEPROPERTYEX('TESTdb', 'RECOVERY')
AS [Recovery Model]

3. Veritabanımızın Recovery Model’ini nasıl değiştirebilirim?

Veritabanımızın Recovery Modelini değiştirmek için 2 farklı yöntem bulunmaktadır.

  1. Yöntem: Veritabanımızda sağ tıklayıp Properties dedikten sonra, Options kısmından Recovery Model’ini değiştirebilmekteyiz.

2. Aşağıdaki T-SQL komutu ile de veritabanımızın Recovery Modelini değiştirebilmekteyiz.

Örneğin, TestDatabase veritabanımızın Recovery Model’ini Simple yapalım.

USE master
GO
ALTER DATABASE TestDatabase SET RECOVERY SIMPLE;

Veritabanı Loglama seçenekleri ile ilgili yazımın sonuna geldik

Bir cevap yazın

Kişisel Web sayfama hoş geldiniz..