RECOVERY CONTROL (PEMULIHAN)

Backup : proses secara periodik untuk mebuat duplikat dari database dan melakukan logging file (atau program) ke media penyimpanan eksternal.

Recovery : merupakan upaya untuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.

1.  Pemulihan terhadap kegagalan transaksi

2.  Pemulihan terhadap kegagalan system

3.  Pemulihan terhadap kegagalan media

Jenis – jenis kegagalan :

1.      Kegagalan system

Kegagalan yang mempengaruhi semua transaksi yang sedang berjalan tetapi tidak merusak database secara fisik.

Contoh : system error, software error

2.      Kegagalan media

Kegagalan yang merusak database dan semua transaksi yang sedang berjalan pada saat itu.

Contoh : head crash

Berbagai kemungkinan yang harus diantisipasi :

·         Gangguan Listrik

·         Kerusakan Disk

·         Kesalahan Perangkat Lunak

·         Pengaksesan oleh orang yang tidak berhak

·         Dua Pengguna/ lebih mengubah data yang sama

3.   Fasilitas recovery

Fasilitas recovery didalam DBMS :

·         Back up mechanism

Membuat back up database dan log file secara periodik

·         Looging facility

Mencatat semua transaksi yang sedang berjalan

·         Checkpoint facility

Synchronization point antara database dengan transaksi log file

·         Recovery manager

Mengijinkan system untuk merestore database kekondisi yang tepat

Sejumlah control yang disediakan oleh DMBS :

·         Pemulihan (recovery)

·         Pengamanan (security)

·         Integritas (integrity)

·         Konkurensi (concurency)

Teknik Pemulihan :                                         

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 redo untuk mencegah akibat dari kegagalan tersebut.

2.      Immediate Upadte / perubahan langsung :

Perubahan pada basis data akan segera tanpa harus menunggu sebuah transaksi tersebut disetujui. Jika terjadi kegagalan diperlukan operasi UNDO untuk melihat apakah ada transaksi yang telah disetujui sebelum terjadi kegagalan.

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.

Pemulihan Transaksi

Sebuah transaksi adalah suatu kesatuan prosedur di dalam program yang mungkin memperbaharui data pada sejumlah tabel. Sebuah transaksi dikatakan telah disetujui (committed) kalau seluruh rangkaian proses dalam transaksi tersebut berhasil dilaksanakan. Dalam prakteknya, bisa saja sesuatu proses di dalam sebuah transaksi gagal dilaksanakan.

Keterangan :

a. mulai   : menyatakan keadaan awal

b. disetujui sebagian : keadaan setelah suatu pernyataan berhasil dilaksanakan

c. gagal : menyatakan keadaan setelah suatu pernyataan gagal melaksanakan tugas

d. batal : keadaan setelah transaksi dibatalkan. Setelah dibatalkan, keadaan dipulihkan  seperti keadaan awal transaksi.

e. disetujui  : keadaan setelah transaksi berhasil dijalankan

f. berakhir  : terjadi setelah transaksi disetujui atau dibatalkan

System mempunyai catatan yang disebut log atau jurnal pada disk, yang dijadikan pedoman untuk membatalkan suatu pengubahan basisdata prosedur konsep pencatatan pada log:

Baca (X, xi) menyatakan prosedur untuk membaca item X dan nilainya berupa xi.

Tulis (Y, yi) menyatakan prosedur untuk menulis item Y dan nilainya berupa yi.

Contoh catatan log :

mulai>  : ditulis ke dalam log sebelum Ti  dimulai

: pengubahan item X dengan nilai baru xi

: ditulis ke dalam log saat transaksi disetujui

Log Basis Data

Pernyataan pada SQL :

COMMIT  : menyetujui pengubahan data secara permanen dan membawa ke

keadaan  akhir

ROLLBACK  : membatalkan pengubahan data dan membawa ke keadaan akhir

Terdapat dua metode dasar, yaitu :

1.      pendekatan update-in-place.

2.   pendekatan deferred-update

Transaksi pada dasarnya melibatkan empat aksi, yaitu :

1. update – membaca dan memodifikasi sistem.

2. read – hanya membaca sistem.

3. commit – membuat permanent seluruh modifikasi terhadap sistem.

4. abort – membatalkan aksi-aksi yang telah dilakukan.

1.      Pendekatan update – in – place

Pendekatan ini melibatkan pembaharuan sistem sebagaimana transaksi berjalan dan meniadakan pembaruan-pembaruan jika transaksi dibatalkan. Implementasi aksi-aksi transaksi pada pendekatan ini adalah :

1.   Update – merekam  undo terhadap record (contoh nilai lama objek yang  diperbarui) di file log undo dan memperbarui sistem.

2.   Read – membaca nilai objek disistem.

3.   Commit – mengabaikan file log undo.

4.  Abort – menggunkan record-rekord undo di file log undo untuk mengembalikan   system ke kondisi semula sebelum transaksi dengan membalik operasi-operasi yang telah dilakukan.

2.     Pendekatan deferred – update

Melibatkan penyimpanan pembaruan-pembaruan transaksi saat dijalankan dan menggunakan pembaruan-pembaruan yang disimpan untuk memperbarui system saat transaksi di – commit. Implementasi aksi-aksi transaksi pada pendekatan ini adalah :

1. Update – merekam rekor redo ( contoh nilai baru dari objek yang sedang diperbarui) di file log redo (juga disebut intention list).

2.    Read – menggabungkan file log redo dan system untuk menentukan nilai objek.

3.  Commit – memperbarui system dengan menerapkan file log redo secara berurut (dimulai dengan opersi pertama yang dilakukan transaksi).

4.      Abort – mengabaikan file log redo dan transaksi.

   Shadow paging

·         Untuk pemeliharaan suatu transaksi digunakan 2 buah table page yaitu table page baru (current page) dan table page bayangan (shadow page)

·         Pada saat start kedua table page mempunyai isi yang sama

·         Table page bayangan tidak berubah selama waktu transaksi

·         Semua pengupdatean transaksi dituliskan ke table page baru

·         Pada saat hamper commit, isi table page bayangan di hapus dan isi table page baru dimasukkan ke dalam table page bayangan

·         Bila transaksi gagal maka table page harus dihapus

·         Dibandingkan menggunakan log file, menggunakan shadow paging lebih cepat karena tidak perlu redo atau undo, tetapi memerlukan data fragmentation dan garbage collection.

Pemulihan Sistem    

Karena gangguan sistem, hang, listrik terputus alirannya. Kegagalan pada system menyebabkan data yang berada dalam RAM hilang.

Implikasi :

Transaksi tidak selesai  : dibatalkan pada saat system aktif (prosesnya bisa disebut Undo).

Transaksi yang telah berakhir  (disetujui)  :ditulis ke basis data (prosesnya biasa disebut Redo).

Pemulihan Media

Pemulihan karena kegagalan media dengan cara mengambil atau memuat kembali salinan basis data (backup) atau Pemulihan dengan cara restore dari backup Bagian tak terpisah dari sistem basisdata adalah skema pemulihan (recovery). Pemulihhan bertanggung-jawab terhadap pendeteksian kegagalan dan mengembalikan basis data ke keadaan konsisten sebelum terjadinyya kegagalan. Kegagalan media (misalnya disk rusak) dan proses pemulihannya Kegagalan disebabkan penyimpanan permanent adalah jarang terjadi. Meskipun demikian perlu dipersiapkan untuk mengatasi kejadian kegagalan ini. Teknik utama untuk mengatasi ini adalah backup atau dump.

Kegagalan pada media disebabkan data di disk hhilang karena terkorupsi sewaktu sistem crash atau penulisan acak atau karena rusaknya head dari disk. Kalau kejadian ini berlangsung , kita dapat memperoleh data dari penyimpanan stabil (yang berpeluang kecil gagal karena dilakukan secara mirrored disks, atau mempunyai banyak kopian dibanyak lokasi jaringan).Data yang disimpan dipenyimpanan stabil adalah data itu sendiri dan file log. Kapan arsip yang konnsisten sulit dilakukan karena berarti harus menghentikan semua transaksi untuk perekaman kopian arsip. Pendekatan yang lebih baik adalah teknik “fuzzy dump” yaitu perekaman dilakukan secara asinkron selagi aktivitas transaksi berlangsung dilakukan secara konkuren sebagai aktivitas background. Skema dasar untuk mengatasai adalah backup seluruh isi basisdata ke penyimpan stabil (stabile storage) secara periodic. Penyimpan stabil adalah penyimpan yang tak pernah kehilangan isinya. Transfer blok antara memori dan penyimpan disk dapat menghasilkan beberapa kemungkinan hasil berikut :

Ø  sukses seluruhnya

Ø  informasi yang ditransfer tiba dengan selamat ditujuan

Ø  terjadi kegagalan persial

kegagalan. terjadi ditengah-tengah transfer dan blok tujuan memuat informasi yang salah.

Ø  terjadi kegagalan total

kegagalan terjadi diawal transfer sehingga blok tujuan tidak berubah. Sistem harus dapat mendeteksi terjadinya kegagalan transfer data dan melakukan prosedur pemulihan untuk mengembalikan blok ke keadaan konsisten . untuk melakukan hal ini, system harus mengelola dua blok fisik untuk tiap blok basisdata logik. Operasi penulisan sebagai berikut :

1.    Tulis informasi ke blok fisik pertama.

2.  Saat penulisan pertama sukses secara lengkap, tulis informasi yang sama ke blok fisik kedua.

3.  Penlisan dinyatakan sukses secara hanya setelah penulisan kedua sukses secara lengkap.

Prosedur pemulihan

Selama pemulihan , masing-masing pasangan blok fisik diperiksa. Jika keduanya sama dan tidak terdeteksi kesalahan , maka tak ada aksi yang dilakukan. Jika salah satu blok terdeteksi kesalahan, maka gantikan isisnya dengan blok yang tak terdeteksi kesalahan. Jika kedua blok tak terdeteksi kesalahan tapi berada maka gantikan blok pertama dengan nilai blok kedua.

Pemulihan berbasis log

Bentuk yang palingn sering digunakan untuk merekam mamodifikasi yang dilakukan terhadap basisdata adalah log. Rekaman log mendeskripsikan satu penulisan ke basisdata dan memiliki field-field berikut :

1. nama transaksi

nama transaksi untuk yang melakukan operasi penulisan.

2. nama item data

nama item data unik yang ditulis.

3. nilai nama

nilai ite data sebelum penulisan.

4. nilai baru

nilai item data yang seharusnya terjadi setelah penulisan.

Prosedur pemulihan

Setelah kegagalan maka basisdata dikembalikan ke keadaan terakhir yang di backup. Kemudian barisan transaksi stelah backup terakhir yang tercatat dilog dieksekusi ulang.

Pemulihan dengan checkpoint

Saat terjadi kegagalan system, maka diperlukan mengkonsultasi log untuk menetukan transaksi-transaksi yang perlu dijalankan kembali dan transaksi-trsansaksi yang perlu dijalankan kembali dan transaksi-transaksi yang tak perlu dijalankan ulang. Seluruh log perlu ditelusuri untuk menetukan hal ini. Terdapat dua kesulitan dengan pendekatan ini :

•  Proses pencairan memerlukan banyak waktu.

•  Kebanyakan transaksi yang perlu dilakukan telah dituliskan ke basisdata.

Meskipun menjalankan ulang transaksi-transaksi itu tidak merusak, tapi pemulihan menjadi lebih lama. Meruduksi overhead ini diperlukan checkpoint. System mengelolah log menggunakan salah satu teknik-teknik diatas. Sistem secara periodik membuat checkpoint sebagai berikut :

•  Tulis semua rekaman log yang saat itu berada dimemori utama kepenyimpan

stabil.

•  Ttulis semua blok buffer yang telah dimodifikasi ke disk.

•  Tulis record log ke penyimpan stabil.

Source

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s