Recovery merupakan suatu proses penyimpanan kembali basis data pada keadaan yang benar sebelum terjadi kegagalan (failure).
Teknik Recovery
Prosedur Recovery yang digunakan tergantung dari kegagalan yang terjadi pada basis data. Terdapat 2 kasus kerusakkan :
- Jika basis data rusak secara fisik seperti disk head crash dan menghancurkan basis data, maka yang terpenting adalah melakukan 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.
- 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 perubahan yang dilakukan telah disimpan di dalam secondory storage. Di sini tidak perlu menggunakan salinan backup basis data, tetapi dapat me-restore basis data ke dalam keadaan yang konsisten dengan menggunakan before- dan after-image yang ditangani oleh log file.
Teknik recovery berikut ini dilakukan terhadap situasi dimana basis data tidak rusak tetapi basis data dalam keadaan yang tidak konsisten.
- Deferred Update (Perubahan yang ditunda)
Update tidak dituliskan ke basis data sampai sebuah transaksi dalam keadaan commit. Jika transaksi gagal sebelum mencapai keadaan ini, transaksi tidak akan memodifikasi basis data dan juga tidak ada perubahan yang perlu dilakukan. Penulisan dilakukan secara initial hanya terhadap log dan log record yang digunakan untuk actual update terhadap basis data.
Jika sistem gagal, sistem akan menguji log dan menentukan transaksi mana yang perlu dikerja kan ulang, tetapi tidak perlu membatalkan semua transaksi.
- Immediate Update (Perubahan langsung)
Update diaplikasikan terhadap basis data tanpa harus menunggu transaksi dalam keadaan commit. Update dapat dilakukan terhadap basis data setiap saat setelah log record ditulis. Log dapat digunakan untuk membatalkan dan mengulang kembali transaksi pada saat terjadi kegagalan.
Tidak ada komentar:
Posting Komentar