Dağıtılmış DBMS - Veritabanı Kurtarma
Veritabanı arızasından kurtulmak için veritabanı yönetim sistemleri bir dizi kurtarma yönetimi tekniğine başvurur. Bu bölümde, veritabanı kurtarma için farklı yaklaşımları inceleyeceğiz.
Veritabanı kurtarma için tipik stratejiler şunlardır:
Veritabanının tutarsızlığına neden olan hafif hatalar durumunda, kurtarma stratejisi işlem geri alma veya geri alma işlemlerini içerir. Bununla birlikte, bazen, işlemin tutarlı bir durumuna geri dönmek için işlemin yeniden yapılması da benimsenebilir.
Veritabanında büyük hasara neden olan kalıcı arızalar durumunda, kurtarma stratejileri veritabanının geçmiş bir kopyasını arşiv yedeklemesinden geri yüklemeyi kapsar. İşlem günlüğünden taahhüt edilen işlemlerin işlemlerinin yeniden yapılmasıyla veritabanının daha güncel bir durumu elde edilir.
Elektrik Kesintisinden Kurtarma
Güç kesintisi, kalıcı olmayan bellekte bilgi kaybına neden olur. Güç geri geldiğinde, işletim sistemi ve veritabanı yönetim sistemi yeniden başlar. Kurtarma yöneticisi, işlem günlüklerinden kurtarmayı başlatır.
Anında güncelleme modu olması durumunda, kurtarma yöneticisi aşağıdaki işlemleri gerçekleştirir -
Aktif ve başarısız listesinde bulunan işlemler geri alınır ve iptal listesine yazılır.
Ön taahhüt listesinde yer alan işlemler yeniden yapılır.
Kaydetme veya iptal listelerindeki işlemler için herhangi bir işlem yapılmaz.
Ertelenmiş güncelleme modu durumunda, kurtarma yöneticisi aşağıdaki işlemleri gerçekleştirir -
Aktif ve başarısız listesinde yer alan işlemler iptal listesine yazılır. Henüz değişiklikler diske yazılmadığından geri alma işlemlerine gerek yoktur.
Ön taahhüt listesinde yer alan işlemler yeniden yapılır.
Kaydetme veya iptal listelerindeki işlemler için herhangi bir işlem yapılmaz.
Disk Arızasından Kurtarma
Bir disk arızası veya sabit çökme, tam bir veritabanı kaybına neden olur. Bu sabit çökmeden kurtarmak için yeni bir disk hazırlanır, ardından işletim sistemi geri yüklenir ve son olarak veritabanı yedekleme ve işlem günlüğü kullanılarak veritabanı kurtarılır. Kurtarma yöntemi hem anında hem de ertelenmiş güncelleme modları için aynıdır.
Kurtarma yöneticisi aşağıdaki eylemleri gerçekleştirir -
Taahhüt listesindeki ve taahhüt öncesi listesindeki işlemler yeniden yapılır ve işlem günlüğündeki taahhüt listesine yazılır.
Aktif listedeki ve başarısız listesindeki işlemler geri alınır ve işlem günlüğündeki iptal listesine yazılır.
Kontrol noktası belirleme
Checkpointtamponlardan veri tabanına bir kaydın yazıldığı zamandır. Sonuç olarak, bir sistem çökmesi durumunda, kurtarma yöneticisinin kontrol noktasından önce taahhüt edilen işlemleri yeniden yapması gerekmez. Periyodik kontrol noktası, kurtarma sürecini kısaltır.
İki tür kontrol noktası belirleme tekniği şunlardır:
- Tutarlı kontrol noktası belirleme
- Bulanık kontrol noktası belirleme
Tutarlı Kontrol Noktası Belirleme
Tutarlı kontrol noktası oluşturma, kontrol noktasında veritabanının tutarlı bir görüntüsünü oluşturur. Kurtarma sırasında, yalnızca son kontrol noktasının sağ tarafında bulunan işlemler geri alınır veya yeniden yapılır. Son tutarlı kontrol noktasının sol tarafındaki işlemler zaten tamamlanmıştır ve yeniden işlenmesine gerek yoktur. Kontrol noktası belirleme için alınan eylemler şunlardır:
- Aktif işlemler geçici olarak askıya alınır.
- Ana bellek tamponlarındaki tüm değişiklikler diske yazılır.
- İşlem günlüğüne bir "kontrol noktası" kaydı yazılır.
- İşlem günlüğü diske yazılır.
- Askıya alınan işlemler yeniden başlatılır.
4. adımda işlem günlüğü de arşivlenirse, bu kontrol noktası disk arızalarından ve elektrik kesintilerinden kurtarmaya yardımcı olur, aksi takdirde yalnızca elektrik kesintilerinden kurtarmaya yardımcı olur.
Bulanık Kontrol İşaretleme
Bulanık kontrol noktasında, kontrol noktası anında, tüm aktif işlemler günlüğe yazılır. Elektrik kesintisi durumunda, kurtarma yöneticisi yalnızca kontrol noktası sırasında ve daha sonra aktif olan işlemleri işler. Kontrol noktasından önce gerçekleştirilen işlemler diske yazılır ve bu nedenle yeniden yapılması gerekmez.
Kontrol Noktası Belirleme Örneği
Sistemde kontrol işaretleme zamanının tcheck olduğunu ve sistem çökme zamanının tfail olduğunu düşünelim. Dört T a , T b , T c ve T d işlemi yapalım , öyle ki -
T a kontrol noktasından önce taahhüt eder.
T b , kontrol noktasından önce başlar ve sistem çökmesinden önce devreye girer.
T c , denetim noktasından sonra başlar ve sistem çökmesinden önce işleme koyar.
T d , kontrol noktasından sonra başlar ve sistem çökmesi sırasında etkindir.
Durum aşağıdaki diyagramda gösterilmektedir -
Kurtarma yöneticisi tarafından gerçekleştirilen eylemler şunlardır:
- T a ile hiçbir şey yapılmaz .
- İşlemin yeniden yapılması T b ve T c için gerçekleştirilir .
- T d için işlem geri alma gerçekleştirilir .
UNDO / REDO Kullanarak İşlem Kurtarma
İşlem kurtarma, bir hatadan kurtarmak yerine hatalı işlemlerin olumsuz etkilerini ortadan kaldırmak için yapılır. Hatalı işlemler, veri tabanını istenmeyen duruma dönüştüren tüm işlemleri ve hatalı işlemlerin yazdığı değerleri kullanan işlemleri içerir.
Bu durumlarda işlem kurtarma iki aşamalı bir süreçtir -
Hatalı işlemlerden etkilenebilecek tüm hatalı işlem ve işlemleri GERİ ALIN.
Hatalı olmayan ancak hatalı işlemler nedeniyle geri alınan tüm işlemleri REDO.
UNDO işlemi için adımlar şunlardır:
Hatalı işlem INSERT yaptıysa, kurtarma yöneticisi eklenen veri öğelerini siler.
Hatalı işlem SİLME işlemini gerçekleştirdiyse, kurtarma yöneticisi silinmiş veri öğelerini günlükten ekler.
Hatalı işlem GÜNCELLEME gerçekleştirdiyse, kurtarma yöneticisi günlükten güncelleme öncesi değeri yazarak değeri ortadan kaldırır.
REDO işlemi için adımlar şunlardır:
İşlem INSERT yapmışsa, kurtarma yöneticisi günlükten bir giriş oluşturur.
İşlem DELETE işlemini gerçekleştirdiyse, kurtarma yöneticisi günlükten bir silme oluşturur.
İşlem UPDATE'i gerçekleştirdiyse, kurtarma yöneticisi günlükten bir güncelleme oluşturur.