12 Sistem Basis Data Recovery System

  

Alif Finandhita, S.Kom Crash adalah suatu kegagalan dari suatu sistem Crash adalah suatu kegagalan dari suatu sistem  

  Penyebab dari kegagalan adalah : Penyebab dari kegagalan adalah :  

  Disk Crash, yaitu informasi yang ada di dalam disk Disk Crash, yaitu informasi yang ada di dalam disk   akan hilang akan hilang

Power Failure, yaitu informasi yang disimpan pada Power Failure, yaitu informasi yang disimpan pada

    memori utama dan register akan hilang memori utama dan register akan hilang Software Error, yaitu output yang dihasilkan tidak Software Error, yaitu output yang dihasilkan tidak

    benar dan sistem databasenya sendiri akan memasuki benar dan sistem databasenya sendiri akan memasuki suatu kondisi yang tidak konsisten (inkonsisten) suatu kondisi yang tidak konsisten (inkonsisten) Kegagalan juga bisa terjadi karena Kegagalan juga bisa terjadi karena  

diakibatkan oleh adanya force majour seperti diakibatkan oleh adanya force majour seperti

misalkan terjadinya bencana alam (banjir, misalkan terjadinya bencana alam (banjir, kebakaran) dan juga adanya sabotase kebakaran) dan juga adanya sabotase terhadap sistem komputer terhadap sistem komputer Akibat dari adanya kejadian – kejadian Akibat dari adanya kejadian – kejadian

    tersebut maka informasi yang berkenaan tersebut maka informasi yang berkenaan

dengan sistem database akan menjadi hilang dengan sistem database akan menjadi hilang

  Berbagai kegagalan/failure yang mungkin Berbagai kegagalan/failure yang mungkin   muncul dalam sebuah sistem, masing-masing muncul dalam sebuah sistem, masing-masing perlu ditangani dengan serius untuk mencegah perlu ditangani dengan serius untuk mencegah terjadinya kerugian yang lebih besar. terjadinya kerugian yang lebih besar.

  Salah satu kegagalan yang tidak terlalu sulit Salah satu kegagalan yang tidak terlalu sulit   untuk ditangani adalah kegagalan yang untuk ditangani adalah kegagalan yang disebabkan oleh hilangnya informasi. disebabkan oleh hilangnya informasi.

  Kegagalan yang disebabkan oleh hilangnya Kegagalan yang disebabkan oleh hilangnya   informasi dapat ditangani dengan informasi dapat ditangani dengan menggunakan teknik recovery menggunakan teknik recovery

    Logical Error, program tidak dapat lagi dilaksanakan Logical Error, program tidak dapat lagi dilaksanakan

  karena kesalahan input, sehingga data tidak karena kesalahan input, sehingga data tidak ditemukan dan dapat terjadi overflow. ditemukan dan dapat terjadi overflow.

  System Error, sistem berada pada keadaan yang System Error, sistem berada pada keadaan yang  

  tidak diinginkan (seperti terjadi deadlock), akibatnya tidak diinginkan (seperti terjadi deadlock), akibatnya program tidak dapat dilanjutkan namun setelah program tidak dapat dilanjutkan namun setelah beberapa waktu program dapat dijalankan kembali. beberapa waktu program dapat dijalankan kembali.

  System Crash, kegagalan fungsi perangkat keras, System Crash, kegagalan fungsi perangkat keras,  

  menyebabkan hilangnya data pada volatile storage, menyebabkan hilangnya data pada volatile storage, tetapi data pada non-volatile storage masih tetap tetapi data pada non-volatile storage masih tetap ada. ada.

  Disk Failure, hilangnya data dari sebuah blok disk Disk Failure, hilangnya data dari sebuah blok disk  

  disebabkan oleh kerusakan head atau kesalahan disebabkan oleh kerusakan head atau kesalahan pada waktu pengoperasian transfer data. pada waktu pengoperasian transfer data. Jenis-jenis storage berdasarkan kecepatan relatif dan Jenis-jenis storage berdasarkan kecepatan relatif dan ketahanan terhadap kegagalan, antara lain : ketahanan terhadap kegagalan, antara lain :

  Volatile Storage, biasanya informasi yang terdapat pada Volatile Storage, biasanya informasi yang terdapat pada  

  volatile akan hilang, jika terjadi kerusakan sistem (system volatile akan hilang, jika terjadi kerusakan sistem (system crash). crash).

  Non-Volatile Storage, biasanya informasi yang terdapat Non-Volatile Storage, biasanya informasi yang terdapat  

  pada non volatile strorage tidak akan hilang jika terjadi pada non volatile strorage tidak akan hilang jika terjadi kerusakan sistem. kerusakan sistem.

  Stable Storage, informasi yang terdapat dalam stable Stable Storage, informasi yang terdapat dalam stable  

  storage tidak pernah hilang. Untuk menjadikan stable storage tidak pernah hilang. Untuk menjadikan stable storage, maka informasi direplikasi pada beberapa non- storage, maka informasi direplikasi pada beberapa non- volatile storage. volatile storage. Recovery dari kegagalan transaksi artinya Recovery dari kegagalan transaksi artinya   database dikembalikan ke kondisi yang database dikembalikan ke kondisi yang terdahulu, mendekati waktu terjadinya terdahulu, mendekati waktu terjadinya kegagalan. kegagalan.

  Untuk melakukan hal tersebut, perlu Untuk melakukan hal tersebut, perlu   disimpan informasi mengenai perubahan disimpan informasi mengenai perubahan terhadap data selama pelaksanaan transaksi terhadap data selama pelaksanaan transaksi di luar database. Informasi tersebut disebut di luar database. Informasi tersebut disebut sebagai sistem log. sebagai sistem log.

   Teknik recovery berhubungan erat dengan

  mekanisme kontrol konkurensi yang digunakan pada sistem bersangkutan.

  

  Bila suatu transaksi dieksekusi oleh DBMS, maka untuk menjaga konsistensi dari database :

   Semua operasi pada suatu transaksi harus selesai dilaksanakan dengan sukses (mencapai titik commit), dan hasilnya disimpan secara permanen pada database.

   Suatu transaksi tidak mempunyai efek apapun terhadap database dan transaksi lain. Hal ini perlu, bila transaksi gagal setelah melakukan beberapa operasi, tapi sebelum semua lengkap dilaksanakan.

  

  Teknik recovery berhubungan erat dengan mekanisme kontrol konkurensi yang digunakan pada sistem bersangkutan.

Bila suatu transaksi dieksekusi oleh DBMS, maka untuk menjaga konsistensi dari database :

  

   Semua operasi pada suatu transaksi harus selesai dilaksanakan dengan sukses (mencapai titik commit), dan hasilnya disimpan secara permanen pada database.

   Suatu transaksi tidak mempunyai efek apapun terhadap database dan transaksi lain. Hal ini perlu, bila transaksi gagal setelah melakukan beberapa operasi, tapi sebelum semua lengkap dilaksanakan.

  Sistem Basis Data harus melaksanakan tindakan tertentu Sistem Basis Data harus melaksanakan tindakan tertentu

    untuk menjamin sifat transaksi yang Atomik dan Durable. untuk menjamin sifat transaksi yang Atomik dan Durable.

  Bagian terintegrasi dari sebuah Sistem Basis Data adalah Bagian terintegrasi dari sebuah Sistem Basis Data adalah

   

  sebuah skema recovery yang dapat memulihkan Basis sebuah skema recovery yang dapat memulihkan Basis Data kepada keadaan konsisten sebelum kegagalan Data kepada keadaan konsisten sebelum kegagalan sistem. sistem.

  Kegagalan sistem saat melakukan transaksi merupakan Kegagalan sistem saat melakukan transaksi merupakan

   

  hal yang harus diperhatikan secara seksama karena terkait hal yang harus diperhatikan secara seksama karena terkait dengan 4 sifat yang harus dimiliki oleh suatu transaksi, dengan 4 sifat yang harus dimiliki oleh suatu transaksi, ACID (Atomicity, Consistency, Isolation, dan Durability) ACID (Atomicity, Consistency, Isolation, dan Durability)

  Ilustrasi Hubungan Fitur & Solusi Transaksi Seperti dideskripsikan pada gambar di atas, Recovery merupakan Seperti dideskripsikan pada gambar di atas, Recovery merupakan   solusi dari hampir semua fitur ACID yang harus dimiliki oleh setiap solusi dari hampir semua fitur ACID yang harus dimiliki oleh setiap transaksi. transaksi.

  Oleh karena itu, transaksi tidak hanya disebut sebagai suatu unit Oleh karena itu, transaksi tidak hanya disebut sebagai suatu unit   pekerjaan, namun juga sebagai suatu unit recovery. pekerjaan, namun juga sebagai suatu unit recovery.

  Pada DBMS modern, konsep recovery sangat penting, bahkan Pada DBMS modern, konsep recovery sangat penting, bahkan   konsep Backup pada DBMS modern tidak akan dapat dimengerti konsep Backup pada DBMS modern tidak akan dapat dimengerti sepenuhnya tanpa pengetahuan yang cukup mengenai konsep sepenuhnya tanpa pengetahuan yang cukup mengenai konsep recovery. recovery.

  Hampir seluruh DBMS modern menggunakan konsep recovery Hampir seluruh DBMS modern menggunakan konsep recovery   berbasis Log. berbasis Log.

  1.

  1. Bank Hemat adalah Bank yang memiliki banyak nasabah, Bank Hemat adalah Bank yang memiliki banyak nasabah,

  Bank ini menggunakan Basis Data untuk menampung Bank ini menggunakan Basis Data untuk menampung seluruh kegiatan transaksi dan data keuangan nasabah. seluruh kegiatan transaksi dan data keuangan nasabah.

  2.

  2. Bob adalah Administrator Basis Data Bank Hemat yang Bob adalah Administrator Basis Data Bank Hemat yang

  bertanggung jawab akan System Basis Data Bank bertanggung jawab akan System Basis Data Bank tersebut. tersebut.

  3.

  3. Pada suatu hari, teknisi maintenance menemukan bahwa Pada suatu hari, teknisi maintenance menemukan bahwa

  umur baterai pada UPS server Basis Data telah sampai umur baterai pada UPS server Basis Data telah sampai pada batas pemakaian. Perbaikan UPS membutuhkan pada batas pemakaian. Perbaikan UPS membutuhkan waktu selama 6 jam dan akan dilaksanakan pada waktu selama 6 jam dan akan dilaksanakan pada keesokan harinya jam 06:00. keesokan harinya jam 06:00.

  4.

  4. Malamnya Bob melakukan Backup DATAFILE saldo nasabah sebelum Malamnya Bob melakukan Backup DATAFILE saldo nasabah sebelum perbaikan. perbaikan.

  5.

  5. Bob melakukan Backup seluruh DATAFILE nasabah kedalam media Bob melakukan Backup seluruh DATAFILE nasabah kedalam media Optik DVD, sedangkan LOG FILE tidak di backup karena telah di Optik DVD, sedangkan LOG FILE tidak di backup karena telah di replikasi pada beberapa Hard Disk. replikasi pada beberapa Hard Disk.

  6.

  6. Proses Backup ini baru selesai tepat saat Tim teknisi datang untuk Proses Backup ini baru selesai tepat saat Tim teknisi datang untuk melakukan perbaikan UPS (Jam 06:00). melakukan perbaikan UPS (Jam 06:00).

  7.

  7. Saat teknisi melakukan perbaikan UPS, server Basis Data di nonaktifkan Saat teknisi melakukan perbaikan UPS, server Basis Data di nonaktifkan sebentar untuk mencabut sambungan listrik dari UPS ke server. sebentar untuk mencabut sambungan listrik dari UPS ke server.

  8.

  8. Kepala operasional memutuskan bahwa selama perbaikan UPS, Server Kepala operasional memutuskan bahwa selama perbaikan UPS, Server akan berjalan tanpa menggunakan UPS. akan berjalan tanpa menggunakan UPS.

  9.

  9. Pada Pada hari hari yang yang sama, sama, seorang seorang nasabah nasabah bernama Yuni pada jam 08:00 mengambil uang bernama Yuni pada jam 08:00 mengambil uang dari tabungannya sebesar Rp 2.000.000 dari dari tabungannya sebesar Rp 2.000.000 dari ATM. Sehingga saldo tabungan Yuni berkurang ATM. Sehingga saldo tabungan Yuni berkurang dari Rp. 5.000.000 menjadi Rp 3.000.000. dari Rp. 5.000.000 menjadi Rp 3.000.000.

  10.

  10. Pada jam 09:00 di hari yang sama, Perusahaan Pada jam 09:00 di hari yang sama, Perusahaan listrik memutuskan bahwa aliran listrik seluruh listrik memutuskan bahwa aliran listrik seluruh kota akan di putus selama 15 menit untuk kota akan di putus selama 15 menit untuk maintenance di karenakan Banjir. Praktis aliran maintenance di karenakan Banjir. Praktis aliran listrik seluruh kota terputus, termasuk aliran listrik seluruh kota terputus, termasuk aliran listrik ke server basis data bank Hemat. listrik ke server basis data bank Hemat.

  9.

  9.

  15 menit kemudian listrik kembali menyala, tetapi saat Bob 15 menit kemudian listrik kembali menyala, tetapi saat Bob mengaktifkan kembali server Basis Data, ternyata server tidak mengaktifkan kembali server Basis Data, ternyata server tidak mau menyala dengan benar dan Bob menemukan bahwa Hard mau menyala dengan benar dan Bob menemukan bahwa Hard Disk yang menyimpan DATAFILE nasabah telah rusak permanen Disk yang menyimpan DATAFILE nasabah telah rusak permanen di karenakan putusnya aliran listrik secara tiba-tiba. di karenakan putusnya aliran listrik secara tiba-tiba.

  10.

  10. Akhirnya Bob memutuskan untuk mengembalikan kondisi Basis Akhirnya Bob memutuskan untuk mengembalikan kondisi Basis Data menggunakan backup terakhir yang ada pada DVD (Backup Data menggunakan backup terakhir yang ada pada DVD (Backup jam 06:00) ke Hard Disk baru, tetapi Bob tidak melakukan proses jam 06:00) ke Hard Disk baru, tetapi Bob tidak melakukan proses recovery menggunakan Data Log Transaksi. recovery menggunakan Data Log Transaksi.

  11.

  11. Keesokan harinya saat Yuni kembali ke ATM, dia terkejut karena Keesokan harinya saat Yuni kembali ke ATM, dia terkejut karena menemukan saldo tabungannya masih Rp. 5.000.000. menemukan saldo tabungannya masih Rp. 5.000.000.

  Log Log  

  Log Dalam Durability Transaksi Log Dalam Durability Transaksi  

  Log Dalam Keatomikan dan Konsistensi Log Dalam Keatomikan dan Konsistensi  

  Transaksi Transaksi   Log Pada Volatile Storage Log Pada Volatile Storage

  Log adalah catatan transaksi secara mendetail. setiap transaksi Log adalah catatan transaksi secara mendetail. setiap transaksi   yang berjalan pada server basis data di catat secara mendetail yang berjalan pada server basis data di catat secara mendetail pada Log ini. pada Log ini.

  Tiap record pada Log menggambarkan operasi tunggal transaksi Tiap record pada Log menggambarkan operasi tunggal transaksi   yang menuliskan data, Record Log tersebut berisi : yang menuliskan data, Record Log tersebut berisi : 1.

  1. Nama transaksi : Nama unik dari transaksi yang menjalankan Nama transaksi : Nama unik dari transaksi yang menjalankan operasi write operasi write 2.

  2. Nama data item : Nama unik dari data item yang di tuliskan Nama data item : Nama unik dari data item yang di tuliskan 3.

  3. Nilai lama : Nilai data item sebelum operasi write Nilai lama : Nilai data item sebelum operasi write 4.

  4. Nilai baru : Nilai yang akan dimiliki data item setelah operasi Nilai baru : Nilai yang akan dimiliki data item setelah operasi write write

Sebagai tambahan, ada Record Log khusus yang menandakan Sebagai tambahan, ada Record Log khusus yang menandakan

    awal dan akhir transaksi. awal dan akhir transaksi.

  Contoh Isi Log : Contoh Isi Log :  

  Proses Recovery menggunakan Log harus Proses Recovery menggunakan Log harus  

memiliki sifat Idempoten, yaitu pengeksekusian memiliki sifat Idempoten, yaitu pengeksekusian

suatu operasi berulang kali, menghasilkan hasil suatu operasi berulang kali, menghasilkan hasil

yang sama dengan eksekusi satu kali. yang sama dengan eksekusi satu kali.

    Sifat Durability adalah sifat yang harus dimiliki transaksi, Sifat Durability adalah sifat yang harus dimiliki transaksi,

  sifat durability ini adalah “setelah suatu transaksi sifat durability ini adalah “setelah suatu transaksi COMMIT, update harus bertahan di basis data”. COMMIT, update harus bertahan di basis data”.

  Sifat durability ini harus dipenuhi apapun yang terjadi, Sifat durability ini harus dipenuhi apapun yang terjadi,

   

  untuk itu, digunakan Log untuk memastikan untuk itu, digunakan Log untuk memastikan terpenuhinya sidat Durability ini. terpenuhinya sidat Durability ini.

  Pada ilustrasi 1 diatas, setelah Yuni melakukan transaksi Pada ilustrasi 1 diatas, setelah Yuni melakukan transaksi

   

  pengambilan saldo sebesar Rp. 2.000.000 dan kemudian pengambilan saldo sebesar Rp. 2.000.000 dan kemudian melihat bahwa saldonya tidak berkurang sama sekali melihat bahwa saldonya tidak berkurang sama sekali adalah salah satu contoh terabaikannya sifat durable adalah salah satu contoh terabaikannya sifat durable yang harus dimiliki transaksi. Untuk mencegah kejadian yang harus dimiliki transaksi. Untuk mencegah kejadian seperti ini, dilakukan penelusuran catatan Log transaksi seperti ini, dilakukan penelusuran catatan Log transaksi dengan melakukan operasi Redo. dengan melakukan operasi Redo. Operasi Redo Transaksi Operasi Redo Transaksi Mekanisme proses ini adalah dengan Me-redo(ne) seluruh Mekanisme proses ini adalah dengan Me-redo(ne) seluruh   transaksi yang terekam didalam Log. Operasi ini juga biasa transaksi yang terekam didalam Log. Operasi ini juga biasa disebut Forward Recovery”. disebut Forward Recovery”.

  

System melakukan penelusuran LOG FILE dari backup terakhir System melakukan penelusuran LOG FILE dari backup terakhir   sampai terjadinya kegagalan System. Seluruh transaksi yang sampai terjadinya kegagalan System. Seluruh transaksi yang terekam pada LOG FILE tersebut di eksekusi ulang, sehingga terekam pada LOG FILE tersebut di eksekusi ulang, sehingga tidak ada lagi kejadian hilangnya data suatu transaksi. tidak ada lagi kejadian hilangnya data suatu transaksi. Ilustrasi 2 (Lanjutan Ilustrasi 1) Ilustrasi 2 (Lanjutan Ilustrasi 1) Tara adalah seorang mahasiswi yang kuliah di luar Tara adalah seorang mahasiswi yang kuliah di luar

   

  kota. Ayu adalah ibu dari Tara. Keduanya adalah kota. Ayu adalah ibu dari Tara. Keduanya adalah nasabah Bank Hemat. Ayu memiliki saldo Rp nasabah Bank Hemat. Ayu memiliki saldo Rp 7.000.000, Tara memiliki saldo Rp 45.000. 7.000.000, Tara memiliki saldo Rp 45.000.

  Pada suatu hari yang sama dengan hari perbaikan Pada suatu hari yang sama dengan hari perbaikan

   

  UPS pada Bank Hemat, Tara meng-SMS ibunya UPS pada Bank Hemat, Tara meng-SMS ibunya untuk mengirimkan uang sebesar Rp. 500.000 untuk mengirimkan uang sebesar Rp. 500.000 karena uang bulanannya hampir habis. karena uang bulanannya hampir habis.

  Ayu yang menerima SMS dari anaknya ini Ayu yang menerima SMS dari anaknya ini   segera menuju ke ATM untuk mentransfer segera menuju ke ATM untuk mentransfer uang ke saldo Tara. uang ke saldo Tara.

    Sesaat sebelum aliran listrik putus pada jam Sesaat sebelum aliran listrik putus pada jam

09:00, Ayu melakukan transaksi mentranfer 09:00, Ayu melakukan transaksi mentranfer

uang ke saldo Tara. Sebelum transaksi uang ke saldo Tara. Sebelum transaksi transfer uang ini “berhasil sepenuhnya”, transfer uang ini “berhasil sepenuhnya”, aliran listrik tiba-tiba putus. aliran listrik tiba-tiba putus.

    Pada ilustrasi 2 diatas, seperti yang diketahui berarti Pada ilustrasi 2 diatas, seperti yang diketahui berarti

  ada 2 operasi yang harus dilakukan, yaitu: ada 2 operasi yang harus dilakukan, yaitu: Mengurangi saldo pada Nasabah Ayu sebanyak Rp Mengurangi saldo pada Nasabah Ayu sebanyak Rp

   

  500.000 500.000 Menambah saldo pada nasabah Tara sebanyak Rp Menambah saldo pada nasabah Tara sebanyak Rp

    500.000. 500.000.

  Skenario di atas menceritakan bahwa transaksi ini Skenario di atas menceritakan bahwa transaksi ini

   

  tidak “berhasil sepenuhnya”, asumsi tidak berhasil tidak “berhasil sepenuhnya”, asumsi tidak berhasil sepenuhnya disini adalah : operasi 1 selesai di sepenuhnya disini adalah : operasi 1 selesai di kerjakan, sedangkan operasi 2 gagal, dikarenakan kerjakan, sedangkan operasi 2 gagal, dikarenakan putusnya aliran listrik. putusnya aliran listrik.

  Jika kondisi ini dibiarkan begitu saja, akan menyebabkan ketidak Jika kondisi ini dibiarkan begitu saja, akan menyebabkan ketidak   konsistenan data, yaitu : Saldo Ayu berkurang Rp 500.000 konsistenan data, yaitu : Saldo Ayu berkurang Rp 500.000 sedangkan saldo Tara tidak bertambah Rp 500.000. sedangkan saldo Tara tidak bertambah Rp 500.000.

  

Ini berarti transaksi ini belum berhasil sempurna (COMMITED), Ini berarti transaksi ini belum berhasil sempurna (COMMITED),

 

dan transaksi ini harus di batalkan (ROLLBACK), sesuai dengan dan transaksi ini harus di batalkan (ROLLBACK), sesuai dengan

sifat atomic yang harus dimiliki transaksi. sifat atomic yang harus dimiliki transaksi.

  Untuk skenario seperti ini, Recovery data menggunakan Log Untuk skenario seperti ini, Recovery data menggunakan Log   ditangani dengan meng-Undo transaksi yang gagal tersebut. ditangani dengan meng-Undo transaksi yang gagal tersebut. Operasi Undo Transaksi Operasi Undo Transaksi Seperti namanya Un-Do(ne) , operasi ini Seperti namanya Un-Do(ne) , operasi ini

   

  membatalkan perubahan terakhir. Sampai kepada membatalkan perubahan terakhir. Sampai kepada titik ditemukannya catatan awal transaksi <BEGIN> titik ditemukannya catatan awal transaksi <BEGIN> pada Log. Operasi ini juga biasa disebut “Backward pada Log. Operasi ini juga biasa disebut “Backward Recovery”. Recovery”.

  Operasi Undo ini akan berjalan saat mekanisme Operasi Undo ini akan berjalan saat mekanisme

   

  Recovery RDBMS menjalankan operasi Redo dengan Recovery RDBMS menjalankan operasi Redo dengan menelusuri catatan Log transaksi dari awal sampai menelusuri catatan Log transaksi dari awal sampai akhir dan menemukan suatu transaksi yang tidak akhir dan menemukan suatu transaksi yang tidak diakhiri dengan sempurna (tidak ditemukannya diakhiri dengan sempurna (tidak ditemukannya klausa COMMIT atau ROLLBACK pada Log). klausa COMMIT atau ROLLBACK pada Log). Ilustrasi Operasi Undo Transaksi : Ilustrasi Operasi Undo Transaksi : Karena sampai pada akhir Log tidak di temukan record Log yang Karena sampai pada akhir Log tidak di temukan record Log yang

   

mengakhiri transaksi transfer uang Ayu, maka secara otomatis mengakhiri transaksi transfer uang Ayu, maka secara otomatis

transaksi transfer uang tersebut harus di batalkan (ROLLBACK), transaksi transfer uang tersebut harus di batalkan (ROLLBACK),

sehingga uang Ayu kembali utuh karena transaksi telah di sehingga uang Ayu kembali utuh karena transaksi telah di batalkan. batalkan.

  Secara umum ada dua jenis media penyimpanan : Secara umum ada dua jenis media penyimpanan : Media penyimpanan sementara (Volatile Storage). Media penyimpanan sementara (Volatile Storage).

    Data yang ada di media penyimpanan ini hanya ada selama aliran listrik Data yang ada di media penyimpanan ini hanya ada selama aliran listrik

    mengalir ke media ini. mengalir ke media ini.

  Jika aliran listrik terputus, maka data yang tersimpan akan hilang. Jika aliran listrik terputus, maka data yang tersimpan akan hilang.

   

Kelebihan media penyimpanan ini adalah kecepatannya yang sangat tinggi Kelebihan media penyimpanan ini adalah kecepatannya yang sangat tinggi

    (karena metode pengaksesannya secara langsung). (karena metode pengaksesannya secara langsung).

  Contoh media penyimpanan jenis ini adalah RAM, Cache dan Register. Contoh media penyimpanan jenis ini adalah RAM, Cache dan Register.

    Media Penyimpanan Permanen (Nonvolatile Storage). Media Penyimpanan Permanen (Nonvolatile Storage).

    Data yang ada di media penyimpanan ini akan tetap ada walaupun aliran Data yang ada di media penyimpanan ini akan tetap ada walaupun aliran

    listrik terputus. listrik terputus.

  

Kecepatan akses media penyimpanan ini jauh lebih lambat di bandingkan Kecepatan akses media penyimpanan ini jauh lebih lambat di bandingkan

  dengan kecepatan akses Volatile Storage. dengan kecepatan akses Volatile Storage.

  Contoh media penyimpanan jenis ini adalah Hard Disk, Magnetic Tape, Floppy Contoh media penyimpanan jenis ini adalah Hard Disk, Magnetic Tape, Floppy   Disk dan Optical Disc. Disk dan Optical Disc. Perbedaan umum dari kedua jenis storage ini Perbedaan umum dari kedua jenis storage ini   adalah, Volatile Storage cepat tetapi bersifat adalah, Volatile Storage cepat tetapi bersifat sementara sedangkan Non-volatile Storage sementara sedangkan Non-volatile Storage bersifat tetap tetapi lambat. bersifat tetap tetapi lambat.

  

Tiap record pada Log menggambarkan operasi Tiap record pada Log menggambarkan operasi  

tunggal transaksi, dan tiap catatan ini harus di tunggal transaksi, dan tiap catatan ini harus di simpan di non-volatile storage agar saat terjadi simpan di non-volatile storage agar saat terjadi padamnya aliran listrik datanya tidak hilang padamnya aliran listrik datanya tidak hilang dan dapat digunakan untuk recovery. dan dapat digunakan untuk recovery. Ilustrasi Contoh Record Log : 

  Tiap nilai dari record tersebut di simpan ke Nonvolatile Storage (Hard Disk), jadi,

  1. Record 1 -> simpan ke Hard Disk, 2.

  Record 2 -> simpan ke Hard Disk,

  3. Record 3 -> simpan ke Hard Disk,

  4. Record 4 -> simpan ke Hard Disk,

  5. Record 5 -> simpan ke Hard Disk, 6. Record 6 dan 7 -> gagal karena putusnya aliran listrik.

  Ilustrasi Contoh Record Log : 

  Tiap nilai dari record tersebut di simpan ke Nonvolatile Storage (Hard Disk), jadi,

  1. Record 1 -> simpan ke Hard Disk, 2.

  Record 2 -> simpan ke Hard Disk,

  3. Record 3 -> simpan ke Hard Disk,

  4. Record 4 -> simpan ke Hard Disk,

  5. Record 5 -> simpan ke Hard Disk, 6. Record 6 dan 7 -> gagal karena putusnya aliran listrik.

    Hal ini berakibat sangat buruk dalam hal performa, Hal ini berakibat sangat buruk dalam hal performa, karena kecepatan akses Hard Disk yang lambat. karena kecepatan akses Hard Disk yang lambat.

  Selain itu hal ini juga sangat tidak efisien, karena ukuran Selain itu hal ini juga sangat tidak efisien, karena ukuran

   

  masing-masing Record Log yang sangat kecil, sehingga masing-masing Record Log yang sangat kecil, sehingga system sangat terbebani dengan operasi tulis ke Hard system sangat terbebani dengan operasi tulis ke Hard Disk untuk tiap-tiap Record Log. Disk untuk tiap-tiap Record Log. Untuk mengatasi masalah performa dan ketidak Untuk mengatasi masalah performa dan ketidak

   

  efisienan tersebut, digunakan Volatile Storage (RAM), efisienan tersebut, digunakan Volatile Storage (RAM), dengan mekanisme mem-buffer, yaitu mengumpulkan dengan mekanisme mem-buffer, yaitu mengumpulkan record-record yang berukuran sangat kecil tersebut record-record yang berukuran sangat kecil tersebut sampai berukuran cukup besar (biasanya sampai sampai berukuran cukup besar (biasanya sampai berukuran satu Logical Block [box]), baru dituliskan ke berukuran satu Logical Block [box]), baru dituliskan ke Hard Disk. Hard Disk.

    Mekanisme membuffer Record Log pada RAM Mekanisme membuffer Record Log pada RAM

  sampai berukuran cukup besar tersebut memiliki sampai berukuran cukup besar tersebut memiliki pengecualian, yaitu pada saat suatu transaksi pengecualian, yaitu pada saat suatu transaksi

  Hal ini di sebabkan Sifat Durability yang harus Hal ini di sebabkan Sifat Durability yang harus

    dimiliki transaksi. dimiliki transaksi.

  Pengecualian ini dilakukan untuk menghindari isi Pengecualian ini dilakukan untuk menghindari isi

   

  Buffer Memory yang hilang saat kegagalan system Buffer Memory yang hilang saat kegagalan system (baik karena putusnya aliran listrik, System Hang (baik karena putusnya aliran listrik, System Hang atau sebab-sebab Nonfisik lainnya). atau sebab-sebab Nonfisik lainnya).

  DBMS mengalokasikan tempat khusus di memory untuk fasilitas DBMS mengalokasikan tempat khusus di memory untuk fasilitas   pem-buffer-an Log ini, yang dinamakan Log Buffer. pem-buffer-an Log ini, yang dinamakan Log Buffer.

  DBMS membuat sebuah proses khusus yang menuliskan isi DBMS membuat sebuah proses khusus yang menuliskan isi  

  

Buffer dari Memory ke Hard Disk, yang di namakan Proses Log Buffer dari Memory ke Hard Disk, yang di namakan Proses Log

Writer. Writer.

  Proses Log Writer ini berjalan di latar belakang (background Proses Log Writer ini berjalan di latar belakang (background   process). Sedangkan untuk Log yang dituliskan ke Hard Disk process). Sedangkan untuk Log yang dituliskan ke Hard Disk dinamakan LOG FILE. dinamakan LOG FILE.

  Dapat disimpulkan bahwaTransaksi yang belum di COMMIT Dapat disimpulkan bahwaTransaksi yang belum di COMMIT   data-data Lognya akan berada pada RAM. baru setelah di- data-data Lognya akan berada pada RAM. baru setelah di- COMMIT, data-data Log tersebut dituliskan ke Hard Disk oleh COMMIT, data-data Log tersebut dituliskan ke Hard Disk oleh sebuah proses. sebuah proses.

  Pada berbagai Literatur, DATAFILE ini biasa Pada berbagai Literatur, DATAFILE ini biasa

   

  dinamakan DATABASE, karena fungsinya yang dinamakan DATABASE, karena fungsinya yang menyimpan data sebenarnya. menyimpan data sebenarnya.

  Pada System Manajemen Basis Data (DBMS) nama Pada System Manajemen Basis Data (DBMS) nama

   

  DATABASE sendiri bukanlah sebatas tempat DATABASE sendiri bukanlah sebatas tempat penyimpanan data table, namun juga seluruh data penyimpanan data table, namun juga seluruh data yang dibutuhkan oleh aplikasi DBMS untuk yang dibutuhkan oleh aplikasi DBMS untuk mengelola aplikasinya. mengelola aplikasinya.

  DATABASE yang berada di Hard Disk bisa disebut DATABASE yang berada di Hard Disk bisa disebut

   

  DATAFILE. Sedangkan DATABASE yang dibuffer di DATAFILE. Sedangkan DATABASE yang dibuffer di RAM dinamakan Database Buffer. RAM dinamakan Database Buffer.

    Datafile adalah file fisik yang menyimpan data yang Datafile adalah file fisik yang menyimpan data yang telah di insert kedalam tiap table pada DBMS. telah di insert kedalam tiap table pada DBMS.

  DATAFILE adalah komponen yang berbeda dengan LOG FILE. DATAFILE adalah komponen yang berbeda dengan LOG FILE.

    Perbedaan komponen tersebut dapat di deskripsikan seperti Perbedaan komponen tersebut dapat di deskripsikan seperti

    berikut: DATAFILE adalah tempat menyimpan data, sedangkan berikut: DATAFILE adalah tempat menyimpan data, sedangkan

LOG FILE adalah tempat penyimpanan catatan bahwa data LOG FILE adalah tempat penyimpanan catatan bahwa data

tersebut telah di simpan. tersebut telah di simpan.

  Karena fungsinya sebagai tempat penyimpanan data (bukan Karena fungsinya sebagai tempat penyimpanan data (bukan   tempat penyimpanan catatan), peranan DATAFILE menjadi tempat penyimpanan catatan), peranan DATAFILE menjadi sangat penting, karenanya, informasi yang tersimpan di sangat penting, karenanya, informasi yang tersimpan di dalamnya HARUS dapat diandalkan (Reliable). dalamnya HARUS dapat diandalkan (Reliable).

  Salah satu cara untuk menjaga ke-Reliable-an isi dari Salah satu cara untuk menjaga ke-Reliable-an isi dari  

  DATAFILE ini adalah dengan cara menggunakan DATAFILE ini adalah dengan cara menggunakan

catatan pada LOG FILE sebagai acuan dalam proses catatan pada LOG FILE sebagai acuan dalam proses

Recovery. Recovery.

  Redundancy penyimpanan data antara DATAFILE Redundancy penyimpanan data antara DATAFILE   dan LOG FILE menyebabkan akan semakin besarnya dan LOG FILE menyebabkan akan semakin besarnya kebutuhan penyimpanan data. kebutuhan penyimpanan data.

  Hal ini sebanding dengan terjaminnya ke-Reliable-an Hal ini sebanding dengan terjaminnya ke-Reliable-an   isi data. isi data.

Datafile menggunakan Buffer untuk mempecepat Datafile menggunakan Buffer untuk mempecepat

    pengaksesan data oleh banyak user pengaksesan data oleh banyak user

  DATAFILE suatu perusahaan dapat berukuran ratusan, DATAFILE suatu perusahaan dapat berukuran ratusan,

   

  bahkan hingga ribuan gigabyte. Walaupun tidak semua bahkan hingga ribuan gigabyte. Walaupun tidak semua data ini diakses secara bersamaan, namun biasanya data ini diakses secara bersamaan, namun biasanya pengaksesan banyak data secara bersamaan sering pengaksesan banyak data secara bersamaan sering terjadi terjadi System Basis Data harus dapat memfasilitasi jika terjadi System Basis Data harus dapat memfasilitasi jika terjadi

   

  pengaksesan banyak data secara bersamaan ini, dengan pengaksesan banyak data secara bersamaan ini, dengan tetap menjaga kecepatan tiap operasi pengaksesan data, tetap menjaga kecepatan tiap operasi pengaksesan data, sehingga tidak ada user yang menunggu lama untuk sehingga tidak ada user yang menunggu lama untuk melihat/mengubah datanya. melihat/mengubah datanya.

  Untuk kebutuhan akses multiuser DATAFILE Untuk kebutuhan akses multiuser DATAFILE

    menggunakan Buffer pada RAM. menggunakan Buffer pada RAM.

  Tempat khusus di RAM yang disediakan untuk hal ini, Tempat khusus di RAM yang disediakan untuk hal ini,

    dinamakan Database Buffer. dinamakan Database Buffer.

  Pem-buffer-an DATAFILE ini bukan hanya untuk operasi Pem-buffer-an DATAFILE ini bukan hanya untuk operasi

   

  membaca data (SELECT) saja, namun juga penulisan membaca data (SELECT) saja, namun juga penulisan data (INSERT/UPDATE/DELETE). data (INSERT/UPDATE/DELETE).

  Hal tersebut berarti perubahan data dilakukan di Hal tersebut berarti perubahan data dilakukan di

   

  Database Buffer (di RAM), bukan langsung ke DATAFILE Database Buffer (di RAM), bukan langsung ke DATAFILE (di Hard Disk). (di Hard Disk).

  Penulisan perubahan pada Database Buffer di RAM ke Penulisan perubahan pada Database Buffer di RAM ke  

  DataFile di Hard Disk terjadi pada saat kapasitas Database DataFile di Hard Disk terjadi pada saat kapasitas Database Buffer penuh dan setelah Log telah dituliskan sebelumnya. Buffer penuh dan setelah Log telah dituliskan sebelumnya.

  Database Buffer digunakan untuk mempercepat waktu akses data. Database Buffer digunakan untuk mempercepat waktu akses data.

   

Data yang tersimpan di Database Buffer akan hilang jika terjadi Data yang tersimpan di Database Buffer akan hilang jika terjadi

    kegagalan system (baik karena putusnya aliran listrik, System Hang kegagalan system (baik karena putusnya aliran listrik, System Hang atau sebab-sebab Nonfisik lainnya). atau sebab-sebab Nonfisik lainnya).

  Oleh karenanya isi Database Buffer harus dituliskan ke DATAFILE di Oleh karenanya isi Database Buffer harus dituliskan ke DATAFILE di   media penyimpanan tetap (Hard Disk). Penulisan Database Buffer ke media penyimpanan tetap (Hard Disk). Penulisan Database Buffer ke DATAFILE ditangani oleh proses latar belakang yang bernama DATAFILE ditangani oleh proses latar belakang yang bernama Database Writer. Database Writer.

  Algoritma yang biasa di gunakan untuk penggantian isi Algoritma yang biasa di gunakan untuk penggantian isi

    Database Buffer adalah Least Recently Used (LRU). Database Buffer adalah Least Recently Used (LRU).

  Algoritma LRU yaitu penulisan isi Database Buffer yang Algoritma LRU yaitu penulisan isi Database Buffer yang

   

  paling terakhir digunakan/diakses ke Hard Disk untuk paling terakhir digunakan/diakses ke Hard Disk untuk memberi ruang kepada Database Buffer untuk memberi ruang kepada Database Buffer untuk menyimpan data baru. menyimpan data baru.

  Penulisan data ke DATAFILE tidak boleh dilakukan Penulisan data ke DATAFILE tidak boleh dilakukan

   

  sebelum record Log dituliskanke LOG FILE di media sebelum record Log dituliskanke LOG FILE di media penyimpanan tetap, karena informasi yang terkandung penyimpanan tetap, karena informasi yang terkandung dalam LOG FILE digunakan untuk merekonstruksi dalam LOG FILE digunakan untuk merekonstruksi keadaan DATAFILE, jika DATAFILE bermasalah. keadaan DATAFILE, jika DATAFILE bermasalah.

  Perbedaan system penulisan DATAFILE dengan Perbedaan system penulisan DATAFILE dengan

   

  LOG FILE adalah isi DATAFILE ini tidak perlu LOG FILE adalah isi DATAFILE ini tidak perlu dituliskan saat transaksi di COMMIT, karena dituliskan saat transaksi di COMMIT, karena catatan-catatan tentang transaksi telah catatan-catatan tentang transaksi telah dituliskanke LOG FILE. dituliskanke LOG FILE.

  Jika terjadi data transaksi yang telah di COMMIT Jika terjadi data transaksi yang telah di COMMIT

   

  pada Database Buffer hilang (karena kegagalan pada Database Buffer hilang (karena kegagalan system), data transaksi yang hilang tersebut system), data transaksi yang hilang tersebut masih dapat dapat dipulihkan dengan masih dapat dapat dipulihkan dengan menelusuri catatannya di LOG FILE. menelusuri catatannya di LOG FILE.

    Misalkan kita mengubah sebagian jalan cerita dari Misalkan kita mengubah sebagian jalan cerita dari ilustrasi 1, dimana setelah Arus Listrik padam, tidak ilustrasi 1, dimana setelah Arus Listrik padam, tidak

  terjadi kerusakan pada Hard Disk Server dan DATAFILE terjadi kerusakan pada Hard Disk Server dan DATAFILE tidak hilang, yang hilang hanya Buffer pada RAM. tidak hilang, yang hilang hanya Buffer pada RAM.

  Karena mekanisme penulisan DATAFILE dari Buffer RAM Karena mekanisme penulisan DATAFILE dari Buffer RAM

   

  ke Hard Disk tidak dilakukan saat transaksi COMMIT, ke Hard Disk tidak dilakukan saat transaksi COMMIT, berarti saat Server kembali dinyalakan, DATAFILE berarti saat Server kembali dinyalakan, DATAFILE “belum” dalam kondisi konsisten. “belum” dalam kondisi konsisten. Untuk memulihkan DATAFILE ke kondisi konsisten, Untuk memulihkan DATAFILE ke kondisi konsisten,

   

  maka dilakukan proses Recovery dengan cara menelusuri maka dilakukan proses Recovery dengan cara menelusuri

  catatannya di LOG FILE, untuk menentukan operasi mana catatannya di LOG FILE, untuk menentukan operasi mana yang harus di Redo dan operasi mana yang harus di Undo. yang harus di Redo dan operasi mana yang harus di Undo.

  

  Secara prinsip, operasi Recovery dilakukan dengan metode menelusuri seluruh Log untuk menentukan operasi apa yang harus dilakukan. Ada dua kekurangan pada metode ini:

   Proses penelusuran Log membutuhkan waktu yang lama

   Kebanyakan transaksi yang harus di redone telah menuliskan perubahan datanya ke DATAFILE, walaupun akan mengulangi transaksi tersebut (idempoten). Pengulangan transaksi akan menyebabkan proses recovery lebih lama

  

  Untuk mengurangi kedua kekurangan beban kerja/waktu tambahan tersebut, digunakan konsep

  Checkpoint.

  

  Secara prinsip, operasi Recovery dilakukan dengan metode menelusuri seluruh Log untuk menentukan operasi apa yang harus dilakukan. Ada dua kekurangan pada metode ini:

   Proses penelusuran Log membutuhkan waktu yang lama

   Kebanyakan transaksi yang harus di redone telah menuliskan perubahan datanya ke DATAFILE, walaupun akan mengulangi transaksi tersebut (idempoten). Pengulangan transaksi akan menyebabkan proses recovery lebih lama

  

  Untuk mengurangi kedua kekurangan beban kerja/waktu tambahan tersebut, digunakan konsep

  Checkpoint.

  

Checkpoint adalah kejadian penulisan secara paksa dari Buffer di Checkpoint adalah kejadian penulisan secara paksa dari Buffer di

  RAM ke File di Hard Disk. RAM ke File di Hard Disk.

  Aksi-aksi yang harus dilakukan adalah : Aksi-aksi yang harus dilakukan adalah :  

  

Menuliskan semua record Log dari Log Buffer di RAM ke LOG FILE di Menuliskan semua record Log dari Log Buffer di RAM ke LOG FILE di

  Hard Disk. Hard Disk.

  Menuliskan semua DATA dari Database Buffer di RAM ke DATAFILE di Menuliskan semua DATA dari Database Buffer di RAM ke DATAFILE di   Hard Disk. Hard Disk.

  Menuliskan record <checkpoint> ke LOG FILE di Hard Disk. Menuliskan record <checkpoint> ke LOG FILE di Hard Disk.

   

Checkpoint dilakukan pada saat tertentu. Biasanya DBMS akan Checkpoint dilakukan pada saat tertentu. Biasanya DBMS akan

    menentukan waktu selang tertentu dalam pengambilan menentukan waktu selang tertentu dalam pengambilan

Checkpoint, atau jika terjadi event yang di tentukan oleh system Checkpoint, atau jika terjadi event yang di tentukan oleh system

(misalnya pada saat banyaknya transaksi sejak pengambilan (misalnya pada saat banyaknya transaksi sejak pengambilan Checkpoint terakhir telah bejumlah tertentu). Checkpoint terakhir telah bejumlah tertentu).

    Pada kegagalan System, baik disebabkan oleh Pada kegagalan System, baik disebabkan oleh

  putusnya aliran listrik ataupun karena aplikasi DBMS putusnya aliran listrik ataupun karena aplikasi DBMS harus di restart, isi Buffer pada di RAM hilang, baik harus di restart, isi Buffer pada di RAM hilang, baik

  Log Buffer maupun Database Buffer. Log Buffer maupun Database Buffer.

  Pada saat system restart dan melakukan proses Pada saat system restart dan melakukan proses

   

  recovery, system akan membuat dua daftar : recovery, system akan membuat dua daftar : [daftar-undo] yang berisi transaksi-transaksi yang harus di [daftar-undo] yang berisi transaksi-transaksi yang harus di

   

  Undo (Dibatalakan-ROLLBACK), dan Undo (Dibatalakan-ROLLBACK), dan [daftar-redo] yang berisi transaksi-transaksi yang harus di [daftar-redo] yang berisi transaksi-transaksi yang harus di

    Redo (dikerjakan ulang). Redo (dikerjakan ulang).

  

System membuat kedua daftar tersebut dengan urutan sebagai System membuat kedua daftar tersebut dengan urutan sebagai

  berikut : berikut : 1.

  1. kedua daftar tersebut kosong kedua daftar tersebut kosong 2.

  2. System menelusuri Log pada LOG FILE di Hard Disk dari System menelusuri Log pada LOG FILE di Hard Disk dari <checkpoint> kedepan <checkpoint> kedepan

  Rincian urutannya adalah sebagai berikut : Rincian urutannya adalah sebagai berikut :   1.

  1. Buat [daftar-redo] dan [daftar-undo] kosong Buat [daftar-redo] dan [daftar-undo] kosong

  2. Baca Log dari <checkpoint> , masukkan seluruh transaksi yang Baca Log dari <checkpoint> , masukkan seluruh transaksi yang 2.

sedang berjalan pada saat <checkpoint> ke dalam [daftar-undo] sedang berjalan pada saat <checkpoint> ke dalam [daftar-undo]

3.

  3. Mulai telusuri Log ke depan dari <checkpoint> Mulai telusuri Log ke depan dari <checkpoint> <Ti, begin> <Ti, begin> a.

  

a. jika ditemukan record jika ditemukan record pindahkan transaksiTi tersebut ke [daftar- pindahkan transaksiTi tersebut ke [daftar-

undo] undo] <Ti, commit> <Ti, commit> <Ti, rollback> <Ti, rollback> b.

  b. jika ditemukan record jika ditemukan record atau atau pindahkan transaksiTi pindahkan transaksiTi tersebut ke [daftar-redo] tersebut ke [daftar-redo]

  4.

  4. Setelah kedua daftar tersebut di buat, Ulangi Setelah kedua daftar tersebut di buat, Ulangi

  lagi penelusuran Log dari <checkpoint> ke lagi penelusuran Log dari <checkpoint> ke depan. Ulangi seluruh transaksi yang ada di depan. Ulangi seluruh transaksi yang ada di [daftar-Redo], sampai akhir dari Log. [daftar-Redo], sampai akhir dari Log.

  5.