Minggu, 20 Oktober 2013

Manajemen Transaksi part 3

2.Recoverability

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