Recovery merupakan upaya untuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.
Jenis-jenis kerusakan/kegagalan pada DBMS
1.Kegagalan Transaksi (Transaction Failure)
•Kesalahan logika (Logical Error), di mana program/ sistem tidak dapat melanjutkan eksekusi normalnya karena adanya kondisi internal tertentu seperti masukan yang salah/ rusak, data tidak tersedia, nilai data diluar batas domain yang diperbolehkan (overflow), logika program yang tidak tepat (bugs) atau batas sumber daya sistem (resource) seperti memori habis.
•Kesalahan sistem (System Error), dimana program/ sistem telah memasuki kondisi yang tidak diharapkan seperti terjadinya deadlock , sebagai hasil dari tidak tereksekusinya program/ sistem secara normal
2.Kerusakan sistem (System Crash)
Hardware macet (hang), menyebabkan isi media penyimpanan sementara (volatile storage) hilang
3. Kegagalan/ kerusakan Disk (Disk Failure)
terjadinya bad sector atau disk macet pada saat berlangsungnya operasi I/O ke disk.
Teknik Recovery
Prosedur recovery yang digunakan tergantung dari kegagalan yang terjadi pada basis data. Terdapat 2 kasus kerusakkan :
1.Jika basis data rusak secara fisik seperti : disk head crash dan menghancurkan basis data, maka yang terpenting adalah melakukan penyimpanan kembali backup basis data yang terakhir dan mengaplikasikan kembali operasi-operasi update transaksi yang telah commit dengan menggunakan log file. Dengan asumsi bahwa log file-nya tidak rusak.
2.Jika basis data tidak rusak secara fisik tetapi menjadi tidak konsisten, sebagai contoh : sistem crash sementara transaksi dieksekusi, maka yang perlu dilakukan adalah membatalkan perubahan-perubahan yang menyebabkan basis data tidak konsisten. Mengulang beberapa transaksi sangat diperlukan juga untuk meyakinkan bahwa perubahan2 yang dilakukan telah disimpan di dalam secondary storage
Disini tidak perlu menggunakan salinan backup basis data, tetapi me-rastore basis data ke dalam keadaan yang konsisten dengan menggum=nakan before dan after-image yang di tangani oleh log fire
Ada 3 teknik utama dalam melakukan recovery:
1.Defered upate / perubahan yang ditunda :
Perubahan pada basis data tidak akan berlangsung sampai transaksi ada pada poin disetujui (COMMIT). Jika terjadi kegagalan maka tidak akan terjadi perubahan, tetapi diperlukan operasi UNDO untuk mencegah akibat dari kegagalan tersebut.
2.Immediate Update / perubahan langsung :
Perubahan Di teknik ini, database akan diupdate oleh beberapa transaksi sebelum transaksi mencapai titik point. Operasi secara khusus disimpan di log pada disk dengan force-writing sebelum diaplikasikan ke database. Jika transaksi gagal setelah menyimpan beberapa perubahan pada database tetapi mencapai titik commit, efek dari operasi pada database harus undone (lepas/ buka); harus rolled back.
Jika transaksi mencapai commit sebelum semua perubahan ditulis ke database dikenal dengan algoritma UNDO/ REDO. Variasi dari algoritma ini adalah semua update disimpan dalam database sebelum sebuah transaksi mencapai commit (membutuhkan hanya UNDO), dikenal dengan algoritma UNDO/NO-REDO
3.Shadow Paging :
Menggunakan page bayangan dimana pada prosesnya terdiri dari 2 tabel yang sama, yang satu menjadi tabel transaksi dan yang lain digunakan sebagai cadangan. Ketika transaksi mulai berlangsung kedua tabel ini sama dan selama berlangsung tabel transaksi yang menyimpan semua perubahan ke database, tabel bayangan akan digunakan jika terjadi kesalahan.
Keuntungannya adalah tidak membutuhkan REDO atau UNDO, kelemahannya membuat terjadinya fragmentasi.
Tidak ada komentar:
Posting Komentar