Dağıtılmış DBMS - Hata ve Taahhüt
Bir veritabanı yönetim sistemi, bir dizi arızaya karşı hassastır. Bu bölümde hata türlerini inceleyeceğiz ve protokolleri işleyeceğiz. Dağıtılmış bir veritabanı sisteminde, arızalar genel olarak hafif arızalar, zor arızalar ve ağ arızaları olarak sınıflandırılabilir.
Hafif Başarısızlık
Hafif arıza, kalıcı depolamada değil bilgisayarın geçici belleğinde kayba neden olan arıza türüdür. Burada, ana bellek, tamponlar, önbellekler veya kayıtlar gibi kalıcı olmayan depolamada depolanan bilgiler kaybolur. Sistem çökmesi olarak da bilinirler. Çeşitli yumuşak arıza türleri aşağıdaki gibidir -
- İşletim sistemi hatası.
- Ana bellek çökmesi.
- İşlem başarısızlığı veya kürtaj.
- Sistem, tamsayı taşması veya sıfıra bölme hatası gibi bir hata oluşturdu.
- Yazılımın desteklenememesi.
- Güç kesintisi.
Sert Başarısızlık
Sabit arıza, disk gibi kalıcı veya geçici olmayan depolamada veri kaybına neden olan arıza türüdür. Disk hatası, bazı disk bloklarında verilerin bozulmasına veya toplam diskin arızalanmasına neden olabilir. Zor bir başarısızlığın nedenleri şunlardır:
- Güç kesintisi.
- Medyadaki hatalar.
- Okuma-yazma arızası.
- Diskteki bilgilerin bozulması.
- Diskin kafa çökmesini oku / yaz.
Yedeklenmiş yeni, biçimlendirilmiş ve kullanıma hazır bir disk varsa, disk arızalarından kurtarma kısa olabilir. Aksi takdirde süre, bir satın alma siparişi almak, diski satın almak ve hazırlamak için geçen süreyi içerir.
Ağ hatası
Ağ arızaları, dağıtılmış veya ağ veritabanlarında yaygındır. Bunlar, verilerin dağıtık doğası ve ağ üzerinden veri aktarımı nedeniyle veri tabanı sisteminde oluşan hatalardan oluşur. Ağ arızasının nedenleri aşağıdaki gibidir -
- İletişim bağlantısı hatası.
- Ağ tıkanıklığı.
- Aktarım sırasında bilgi bozulması.
- Site hataları.
- Ağ bölümleme.
Protokolleri Kaydet
Herhangi bir veritabanı sistemi, bir işlemin istenen özelliklerinin hatalardan sonra bile korunacağını garanti etmelidir. Bir işlemin yürütülmesi sırasında bir hata oluşursa, işlemin getirdiği tüm değişikliklerin taahhüt edilmemesi olabilir. Bu, veritabanını tutarsız hale getirir. Kaydetme protokolleri, işlem geri alma (geri alma) veya işlem yineleme (ileri alma) kullanarak bu senaryoyu engeller.
Commit Point
Bir işlemi gerçekleştirme veya iptal etme kararının verildiği zaman, taahhüt noktası olarak bilinir. Aşağıda bir kesinleştirme noktasının özellikleri verilmiştir.
Veritabanının tutarlı olduğu bir zaman noktasıdır.
Bu noktada veri tabanının getirdiği değişiklikler diğer işlemler tarafından görülebilmektedir. Tüm işlemler veritabanının tutarlı bir görünümüne sahip olabilir.
Bu noktada işlemin tüm işlemleri başarıyla gerçekleştirilmiş ve etkileri işlem günlüğüne kaydedilmiştir.
Bu noktada, gerekirse bir işlem güvenli bir şekilde geri alınabilir.
Bu noktada, bir işlem, tuttuğu tüm kilitleri serbest bırakır.
İşlemi Geri Al
Bir işlemle bir veritabanında yapılan tüm değişiklikleri geri alma işlemine işlem geri alma veya işlem geri alma adı verilir. Bu çoğunlukla hafif bir arıza durumunda uygulanır.
İşlemi Yeniden Yap
Bir işlemle bir veritabanında yapılan değişikliklerin yeniden uygulanması işlemine işlemin yeniden yapılması veya işlemin geri alınması denir. Bu, çoğunlukla kalıcı bir arızadan kurtarma için uygulanır.
İşlem Günlüğü
İşlem günlüğü, veritabanı öğelerindeki işlem işlemlerinin kaydını tutan sıralı bir dosyadır. Günlük, doğası gereği sıralı olduğundan, baştan veya sondan sırayla işlenir.
İşlem günlüğünün amaçları -
- İşlemleri gerçekleştirmek veya desteklemek için taahhüt etme protokollerini desteklemek.
- Başarısızlıktan sonra veritabanı kurtarmaya yardımcı olmak için.
Yazılım hatalarından etkilenmemesi için genellikle diskte bir işlem günlüğü tutulur. Ek olarak, günlük, disk arızalarından da korumak için manyetik bant gibi bir arşiv depolamasına periyodik olarak yedeklenir.
İşlem Günlüklerinde Listeler
İşlem günlüğü, işlemin durumuna bağlı olarak beş tür liste tutar. Bu liste, kurtarma yöneticisinin bir işlemin durumunu belirlemesine yardımcı olur. Durum ve ilgili listeler aşağıdaki gibidir -
Bir işlem başlangıç kaydı ve bir işlem tamamlama kaydına sahip bir işlem, taahhüt listesinde tutulan bir taahhütlü işlemdir.
Bir işlem başlatma kaydı ve bir işlem başarısız kaydı olan ancak bir işlem iptal kaydı olmayan bir işlem başarısız bir işlemdir - başarısız listesinde tutulur.
Bir işlem başlatma kaydı ve bir işlem iptal kaydı olan bir işlem, durdurulmuş bir işlemdir - durdurma listesinde tutulur.
Bir işlem başlangıç kaydı ve bir işlem öncesi işlem kaydına sahip bir işlem, bir taahhüt öncesi işlemdir, yani tüm işlemlerin yürütüldüğü ancak taahhüt edilmediği bir işlemdir - taahhüt öncesi listesinde tutulur.
İşlem başlangıç kaydına sahip olan, ancak taahhüt etme, tamamlama, durdurma veya başarısızlık öncesi kayıtları olmayan bir işlem, aktif bir işlemdir - aktif listede tutulur.
Anında Güncelleme ve Ertelenmiş Güncelleme
Anında Güncelleme ve Ertelenmiş Güncelleme, işlem günlüklerini tutmanın iki yöntemidir.
İçinde immediate updatemod, bir işlem yürütüldüğünde, işlem tarafından yapılan güncellemeler doğrudan diske yazılır. Eski değerler ve güncelleme değerleri, diskteki veritabanına yazılmadan önce günlüğe yazılır. Kaydetme sırasında diskte yapılan değişiklikler kalıcı hale getirilir. Geri dönüşte, veritabanındaki işlem tarafından yapılan değişiklikler atılır ve eski değerler, günlükte depolanan eski değerlerden veritabanına geri yüklenir.
İçinde deferred updatekipinde, bir işlem yürütüldüğünde, işlem tarafından veritabanında yapılan güncellemeler günlük dosyasına kaydedilir. Kaydetme sırasında günlükteki değişiklikler diske yazılır. Geri dönme sırasında, günlükteki değişiklikler atılır ve veritabanına hiçbir değişiklik uygulanmaz.