DBMS Terdistribusi - Pemulihan Database
Untuk memulihkan diri dari kegagalan database, sistem manajemen database menggunakan sejumlah teknik manajemen pemulihan. Dalam bab ini, kita akan mempelajari berbagai pendekatan untuk pemulihan database.
Strategi khas untuk pemulihan database adalah -
Jika terjadi kegagalan ringan yang mengakibatkan inkonsistensi database, strategi pemulihan mencakup pembatalan atau pengembalian transaksi. Namun, terkadang, pengulangan transaksi juga dapat diadopsi untuk memulihkan keadaan transaksi yang konsisten.
Jika terjadi kegagalan keras yang mengakibatkan kerusakan parah pada database, strategi pemulihan mencakup pemulihan salinan database sebelumnya dari cadangan arsip. Keadaan database yang lebih terkini diperoleh melalui operasi ulang dari transaksi yang dilakukan dari log transaksi.
Pemulihan dari Kegagalan Daya
Kegagalan daya menyebabkan hilangnya informasi di memori non-persisten. Saat daya pulih, sistem operasi dan sistem manajemen database akan dimulai ulang. Manajer pemulihan memulai pemulihan dari log transaksi.
Dalam mode pembaruan langsung, manajer pemulihan mengambil tindakan berikut -
Transaksi yang ada dalam daftar aktif dan daftar gagal dibatalkan dan ditulis di daftar batal.
Transaksi yang ada dalam daftar sebelum komit diulang.
Tidak ada tindakan yang diambil untuk transaksi dalam daftar commit atau abort.
Jika mode pembaruan ditangguhkan, manajer pemulihan mengambil tindakan berikut -
Transaksi yang ada dalam daftar aktif dan daftar gagal dituliskan ke dalam daftar batal. Tidak ada operasi pengurungan yang diperlukan karena perubahan belum ditulis ke disk.
Transaksi yang ada dalam daftar sebelum komit diulang.
Tidak ada tindakan yang diambil untuk transaksi dalam daftar commit atau abort.
Pemulihan dari Kegagalan Disk
Kegagalan disk atau hard crash menyebabkan kehilangan database total. Untuk memulihkan dari kerusakan keras ini, sebuah disk baru disiapkan, kemudian sistem operasi dipulihkan, dan akhirnya database dipulihkan menggunakan cadangan database dan log transaksi. Metode pemulihan sama untuk mode pembaruan langsung dan yang ditunda.
Manajer pemulihan mengambil tindakan berikut -
Transaksi dalam daftar komit dan daftar sebelum komit diulang dan ditulis ke daftar komit di log transaksi.
Transaksi dalam daftar aktif dan daftar gagal dibatalkan dan ditulis ke daftar batal di log transaksi.
Checkpointing
Checkpointadalah titik waktu di mana sebuah record ditulis ke database dari buffer. Akibatnya, jika terjadi crash sistem, manajer pemulihan tidak harus mengulangi transaksi yang telah dilakukan sebelum checkpoint. Pemeriksaan berkala mempersingkat proses pemulihan.
Dua jenis teknik checkpointing adalah -
- Pemeriksaan yang konsisten
- Checkpointing yang kabur
Checkpointing yang Konsisten
Checkpointing yang konsisten membuat gambar database yang konsisten di checkpoint. Selama pemulihan, hanya transaksi yang ada di sisi kanan pos pemeriksaan terakhir yang dibatalkan atau dilakukan ulang. Transaksi di sisi kiri pos pemeriksaan terakhir yang konsisten sudah dilakukan dan tidak perlu diproses lagi. Tindakan yang diambil untuk checkpointing adalah -
- Transaksi aktif ditangguhkan sementara.
- Semua perubahan dalam buffer memori utama ditulis ke dalam disk.
- Catatan "pos pemeriksaan" tertulis di log transaksi.
- Log transaksi ditulis ke disk.
- Transaksi yang ditangguhkan dilanjutkan.
Jika di langkah 4, log transaksi diarsipkan juga, maka checkpointing ini membantu pemulihan dari kegagalan disk dan gangguan daya, jika tidak, ini membantu pemulihan hanya dari gangguan daya.
Pemeriksaan Fuzzy
Dalam fuzzy checkpointing, pada saat checkpoint, semua transaksi yang aktif ditulis di log. Jika listrik mati, manajer pemulihan hanya memproses transaksi yang aktif selama pos pemeriksaan dan kemudian. Transaksi yang telah dilakukan sebelum checkpoint ditulis ke disk dan karenanya tidak perlu dilakukan ulang.
Contoh Checkpointing
Mari kita pertimbangkan bahwa dalam sistem waktu checkpointing adalah tcheck dan waktu crash sistem adalah tfail. Misalkan ada empat transaksi T a , T b , T c dan T d sehingga -
T a melakukan sebelum checkpoint.
T b dimulai sebelum pos pemeriksaan dan komit sebelum sistem crash.
T c dimulai setelah checkpoint dan dijalankan sebelum sistem crash.
T d dimulai setelah checkpoint dan aktif pada saat sistem crash.
Situasinya digambarkan dalam diagram berikut -
Tindakan yang diambil oleh manajer pemulihan adalah -
- Tidak ada yang dilakukan dengan T a .
- Pengulangan transaksi dilakukan untuk T b dan T c .
- Transaksi dibatalkan dilakukan untuk T d .
Pemulihan Transaksi Menggunakan UNDO / REDO
Pemulihan transaksi dilakukan untuk menghilangkan efek buruk dari transaksi yang salah daripada memulihkan dari kegagalan. Transaksi yang salah mencakup semua transaksi yang telah mengubah database menjadi keadaan yang tidak diinginkan dan transaksi yang menggunakan nilai yang ditulis oleh transaksi yang salah.
Pemulihan transaksi dalam kasus ini adalah proses dua langkah -
URUNGKAN semua transaksi dan transaksi yang salah yang mungkin terpengaruh oleh transaksi yang salah.
KEMBALI semua transaksi yang tidak rusak tetapi telah dibatalkan karena transaksi yang salah.
Langkah-langkah untuk operasi UNDO adalah -
Jika transaksi yang salah telah melakukan INSERT, manajer pemulihan akan menghapus item data yang dimasukkan.
Jika transaksi yang salah telah melakukan HAPUS, manajer pemulihan memasukkan item data yang dihapus dari log.
Jika transaksi yang salah telah melakukan UPDATE, manajer pemulihan menghilangkan nilai tersebut dengan menulis nilai sebelum pembaruan dari log.
Langkah-langkah untuk operasi REDO adalah -
Jika transaksi telah selesai SISIPKAN, manajer pemulihan membuat sisipan dari log.
Jika transaksi telah selesai HAPUS, manajer pemulihan menghasilkan penghapusan dari log.
Jika transaksi telah selesai UPDATE, manajer pemulihan membuat pembaruan dari log.