Kategoriler
Anlatım Microsoft

Veritabanı Kurtarma/Yedekleme Modeli (Recovery Model)

SQL Server’ın sunduğu kurtarma modeli bir veritabanı özelliğidir. Seçilen kurtarma modeli istenildiği zaman değiştirilebilir. SSMS (SQL Server Management Studio) üzerinde bir veritabanına sağ tıklayıp ilgili bölümlerden kurtarma modelini seçebiliriz. Veritabanı yedeğini alma ya da yedekten geri dönme işlemleri bu modellerin özelliğine göre yapılır. Seçilen model veritabanı trafiğini etkileyeceği için hangi modelin seçileceği büyük önem taşır. Kurtarma modeli işlem kayıtlarının nasıl tutulacağını gösterir. SQL Serverda işlem kayıtlarını tutmamak gibi bir durum söz konusu değildir. Her koşulda da işlem kayıtları tutulur. Fakat bu kayıtların nasıl tutulduğu kurtarma modeline göre değişir.

SQL Server üç veri kurtarma modeli sunar. Bu modeller veritabanı yöneticisinin SQL Server ‘ın kayıt dosyalarını nasıl yöneteceğini belirler ve aynı zamanda bir kriz anında (yanlışlıkla verilerin silinmesi, veritabanının üzerinde bulunduğu diskin bozulması vb) geri kurtarma işlemi için hazırlık yapmasını sağlar. Bahsedilen her üç modelde farklı sebeplere yönelik çözümler olarak tasarlanmıştır. Burada ki çözümler diskte yer tutma ile kriz sonrası geri kurtarma için sağlanacak kayıt dosyalarının ne şekilde tutulduğuyla alakalıdır. Çok ayrıntılı bir kayıt dosyası veri kurtarma için iyidir fakat disk üzerinde çok yer tutar.

Basit Kurtarma Modeli (Simple Recovery Model)

Bu model adından da anlaşılacağı üzere sadedir. Bu yaklaşımda SQL Server minimum miktarda işlem (transaction) kaydını tutar. SQL Server, veritabanı her işlem kontrol noktasına (transaction checkpoint) geldiğinde, işlem kayıtlarının bir kısmını keser. Bu modeli kullanan veritabanlarında, tam (full) ya da diferansiyel (differential) yedekten geri yükleme yapılabilir. Fakat geri yükleme yedek alınan yazana döner. Yani örnek olarak veritabanı silinmeden on gün önce yedek alınmışsa, yedekten geri yükleme yaptığımız zaman o gün ki hali neyse o şekilde gelir. Bu nedenle aradaki on günlük yeni ada değişmiş veri kaybolur.

Tam Kurtarma Modeli (Full Recovery Model)

Bu modelde, SQL Server, işlem kayıtlarının (transaction logs) yedeği alınana kadar onları korur. Bu model sayesinde, olası bir krize karşı bir kriz planı elde bulundurmak açısından işlem kayıtlarının yedeğiyle birleştirilmiş tam ve ya diferansiyel veritabanı yedeği oluşturulabilir. Herhangi bir nedenden dolayı veritabanında bir hata meydana geldiğinde bu model sayesinde geri yükleme konusunda yeterince esnek davranabileceksiniz. Bununla birlikte tam kurtarma modelinin diğer bir özelliği olan istenilen ana geri yükleme de yapılabilir. Burada istenilen ana geri dönüşten kasıt şudur; düşünelim ki bir yıldır var olan bir veritabanımız var. Bu veritabanının bir kısmı bir hafta önce yanlış yazılan bir sorgu yüzünden silindi veya değişti. Bizde bu hatayı geç fark etmiş olalım. Bu durumda yedekten geri yükleme yapmamız gerekir. Fakat veritabanı için bir hafta öncesindeki hali gerekiyor bize. Tam kurtarma modeli sayesinde istediğimiz ana geri dönüş yapabiliriz. Fakat bu modelle alınan yedekler disk çok yer tutar.

Toplu İşlem Kurtarma Modeli (Bulk-Logged Recovery Model)

Bu modelin özel bir amacı vardır. Tam kurtarma modeli gibi davranır. Tek fark ise toplu işlemlerin nasıl üstesinden geldiğidir. Bu modelde toplu işlem kayıtları işlem kayıtlarında minimum düzeyde tutulur. Bu şekilde kayıt tutmak önemli miktarda işlemci yükünü azaltır fakat istenilen zamana geri yükleme yapmayı engeller. Bu nedenle bu modeli sürekli kullanmak yerine toplu işlem yapılmak istendiğinde tanımlı modeli bu modelle değiştirip işlerin yapılmasıdır. Daha sonra işlemler bitince önce ki modele geri dönüş yapılarak iş yükü azaltılmış olur. Aynı zamanda istenilen ana geri yükleme özelliği (eğer önceki model tam kurtarma modeliyse) kaybedilmemiş olur.