Lompat ke konten Lompat ke sidebar Lompat ke footer

Pemulihan Kegagalan Basis Data

Kegagalan basis data terjadi pada transaksi pada basis data dan terjadi karena pengguna atau aplikasi yang mengakses basis data membuat data tidak konsisten.

Definisi Transaksi adalah sebuah aksi atau serangkaian aksi, yang dilakukan oleh pengguna atau aplikasi yang mengakses atau mengubah isi data dalam hal ini logical unit of work dasi suatu basis data.

Pada praktiknya sebuah transaksi akan berhadapan dengan konsistensi basis data, dan selama eksekusi transaksi basis data mungkin dalam kondisi inkonsisten, sehingga saat transaksi selesai basis data harus dikembalikan lagi menjadi konsisten.

Ada dua jenis hasil transaksi yaitu:

  1. Sukses, berarti transaksi dikatakan commited dan membuat basis data berubah secara permanen.
  2. Gagal, berarti transaksi dikatakan aborted dan basis data harus dikembalikan ke nilai tetap seperti sebelum dilakukannya transaksi.

Status transaksi terdiri dari:

  1. aktif, yang merupakan status awal sebuah transaksi akan ada dalam status ini selama eksekusi berlangsung.
  2. selesai sebagian, keadaan yang dicapai transaksi tepat setelah instruksi terakhir dalam transaksi selesai dikerjakan.
  3. gagal, keadaan dimana eksekusi belum dapat dikerjakan secara utuh atau terhenti.
  4. batal, setelah transaksi batal terjadi pengembalian nilai-nilai harus kembali seperti sebelum transaksi.
  5. berhasil, keadaan setelah transaksi berjalan lengkap.

Untuk menjamin integritas data, sistem basis data harus memiliki sifat:

  • Atomicity atau utuh, transaksi merupakan unit yang tidak terlihat, yang harus dilakukan secara keseluruhan atau tidak sama sekali.
  • Consistency atau konsisten, eksekusi transaksi dapat menjamin konsistensi basis data.
  • Isolation (Isolasi), pada sejumlah transaksi yang terjadi secara bersamaan, setiap transaksi tidak boleh terpengaruh dengan transaksi yang lain. Hasil transaksi sementara harus terlindungi dari eksekusi transaksi yang lain.
  • Durability atau permanen, setelah sebuah transaksi berakhir dengan sukses, perubahan yang terjadi pada sebuah basis dta harus tetap bertahan. Secara permanen direkam kedalam basis data dan tidak akan hilang dikarenakan kegagalan berikutnya.

Jenis Pemulihan Basis Data dapat berupa:

  • Pemulihan terhadap Kegagalan Transaksi, kesatuan prosedur dalam program yang dapat mengubah/memperbaharui data pada sejumlah tabel.
  • Pemulihan terhadap Kegagalan Media, pemulihan karena kegagalan media dengan cara mengambil atau memuat kembali salinan basis data (backup).
  • Pemulihan terhadap Kegagalan Sistem, hal ini disebabkan karena gangguan sistem, perangkat keras yang hang atau aliran listrik yang terputus.

Fasilitas Pemulihan pada DBMS terdiri dari:

  • Backup, memindahkan basis data ke tempat penyimpanan lain secara periodik.
  • Logging, membuat track pada tempatnya saat transaksi berlangsung dan pada saat basis data berubah.
  • Checkpoint, melakukan update basis data yang terbaru.
  • Manajer Pemulihan, memperbolehkan sistem untuk menyimpan ulang basis data menjadi konsisten setelah terjadinya kesalahan.

Teknik Pemulihan Basis Data terdiri dari:

  • Perubahan yang ditunda (Defered Update), 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.
  • Perubahan langsung (Immediate Update), 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.
  • Shadow Paging, menggunakan halaman bayangan dimana prosesnya terdiri dari dua tabel yang sama, yang satu menjadi tabel transaksi dan yang lain digunakan sebagai cadangan.