SlideShare une entreprise Scribd logo
1  sur  12
Télécharger pour lire hors ligne
Pengenalan Konsep dan Komponen Database Recovery
M. Ammar Shadiq
Ilmu Komputer  Universitas Pendidikan Indonesia, Bandung
26 April 2009 [ Versi.Latihan.Beta 1 ]

RECOVERY TRANSAKSI

System komputer, seperti perangkat-perangkat lain, tidaklah luput dari kegagalan yang diakibatkan berbagai
hal, seperti : disk crash, padam listrik, software error, kebakaran di ruang server, bahkan sabotase. Kegagalan
system dapat mengakibatkan hilangnya data. Untuk itulah System Basis Data harus melaksanakan tindakan
tertentu untuk menjamin sifat transaksi yang Atomik dan Bertahan (Durable). Bagian terintegrasi dari sebuah
System Basis Data adalah recovery scheme (rencana pemulihan) yang dapat memulihkan Basis Data kepada
keadaan konsisten sebelum kegagalan system.

Kenapa kegagalan system saat transaksi merupakan hal yang harus di perhatikan secara seksama? Hal ini
bersangkut paut dengan tiga sifat yang harus dimiliki sebuah transaksi, yaitu :

        Atomic, yaitu suatu transaksi berhasil seluruhnya atau gagal seluruhnya
        Consistency, yaitu suatu transaksi bersifat mempertahankan kebenaran data, dan
        Durability, yaitu saat suatu transaksi telah di COMMIT maka perubahan data yang telah dilakukan
        pada transaksi itu harus bertahan pada Basis Data, tidak peduli apa yang terjadi. Hubungan Durability
        dengan Consistency adalah : perubahan data yang telah dilakukan pada transaksi jika tidak bertahan
        pada basis data akan menyebabkan tidak konsistenannya data.




                                  Ilustrasi hubungan fitur dan solusi transaksi

Seperti dideskripsikan pada gambar diatas, Recovery merupakan solusi dari hampir semua fitur ACID yang
harus dimiliki transaksi, oleh karena itu transaksi tidak hanya di sebut sebagai suatu unit pekerjaan, namun
juga sebagai unit recovery.

Tulisan ini akan membahas mengenai Recovery. Karena pada DBMS modern, konsep recovery ini sangat
penting, bahkan konsep Backup pada DBMS modern tidak akan dapat dimengerti sepenuhnya tanpa
pengertian yang cukup tentang konsep recovery.

Hampir seluruh DBMS modern menggunakan konsep Recovery berbasis Log. Konsep dan penerapannya dalam
System Basis Data akan di bahas pada bagian-bagian berikut.




           Pengenalan Konsep dan Komponen Database Recovery
       1   Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
RECOVERY BERBASIS LOG

                                                  CERITA 1
Bank Hemat adalah Bank yang memiliki banyak nasabah, Bank ini menggunakan Basis Data untuk menampung
seluruh kegiatan transaksi dan data keuangan nasabah. Bob adalah Administrator Basis Data Bank Hemat yang
bertanggung jawab akan System Basis Data Bank tersebut.

Pada suatu hari, teknisi maintenance menemukan bahwa umur baterai pada UPS server Basis Data telah
sampai pada batas pemakaian. Perbaikan UPS membutuhkan waktu selama 6 jam dan akan dilaksanakan pada
keesokan harinya jam 06:00.

Malamnya Bob melakukan Backup DATAFILE saldo nasabah sebelum perbaikan. Bob melakukan Backup
seluruh DATAFILE nasabah kedalam media Optik DVD, sedangkan LOG FILE tidak di backup karena telah di
replikasi pada beberapa Hard Disk. Proses Backup ini baru selesai tepat saat Tim teknisi datang untuk
melakukan perbaikan UPS (Jam 06:00).

Saat teknisi melakukan perbaikan UPS, server Basis Data di nonaktifkan sebentar untuk mencabut sambungan
listrik dari UPS ke server. Kepala operasional memutuskan bahwa selama perbaikan UPS, Server akan berjalan
tanpa menggunakan UPS.

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

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

15 menit kemudian listrik kembali menyala, tetapi saat Bob mengaktifkan kembali server Basis Data, ternyata
server tidak mau menyala dengan benar dan Bob menemukan bahwa Hard Disk yang menyimpan DATAFILE
nasabah telah rusak permanen di karenakan putusnya aliran listrik secara tiba-tiba. Akhirnya Bob memutuskan
untuk mengembalikan kondisi Basis Data menggunakan backup terakhir yang ada pada DVD (Backup jam
06:00) ke Hard Disk baru, tetapi Bob tidak melakukan proses recovery menggunakan Data Log Transaksi.

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

  Waktu                         Kegiatan dan Kejadian                                    Ilustrasi

               Bob membackup DATAFILE ke DVD
   06:00
               Teknisi menonaktifkan UPS untuk di perbaiki



   08:00       Yuni melakukan penarikan uang Rp 2.000.000



               Perusahaan listrik memutuskan aliran listrik
   09:00
               Server basis data bank hemat mati secara tiba-tiba.


               Aliran listrik kembali menyala.
               Bob menghidupkan kembali server Basis Data dan
   09:15
               menemukan bahwa Hard Disk rusak, lalu Bob mentransfer
               data backup terakhir (jam 06:00) ke Hard Disk baru.
               Yuni menemukan bahwa saldo tabungannya masih
 Hari Esok                                                                          Inkonsistensi Data
               Rp. 5.000.000, bukan Rp 3.000.000 seperti seharusnya.




             Pengenalan Konsep dan Komponen Database Recovery
       2     Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
Pada cerita diatas, jika saja Bob bukan hanya menggunakan Backup terakhir, tetapi juga Log seluruh transaksi
terakhir sampai dengan sesaat sebelum aliran listrik putus, maka Yuni akan menemukan saldo tabungannya
Rp. 3.000.000 seperti seharusnya dan Bank tidak akan mengalami kerugian.

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

Tiap record pada Log menggambarkan operasi tunggal transaksi yang menuliskan data, Record Log tersebut
berisi :
     1. Nama transaksi : Nama unik dari transaksi yang menjalankan operasi write
     2. Nama data item : Nama unik dari data item yang di tuliskan
     3. Nilai lama      : Nilai data item sebelum operasi write
     4. Nilai baru      : Nilai yang akan dimiliki data item setelah operasi write
Sebagai tambahan, ada Record Log khusus yang menandakan awal dan akhir transaksi.

                     Record No.                  Isi Redo Log Record                    Status
                      Record 1       <T0, begin>                                       Berhasil
                      Record 2       <T0, Saldo Yuni, 5.000.000, 3.000.000>            Berhasil
                      Record 3       <T0, commit>                                      Berhasil
                                                     Contoh isi Log

Proses Recovery menggunakan Log harus memiliki sifat Idempoten, yaitu pengeksekusian suatu operasi
berulang kali, menghasilkan hasil yang sama dengan eksekusi satu kali.

1.2 LOG DALAM DURABILITY TRANSAKSI
Sifat Durability adalah sifat yang harus dimiliki transaksi, sifat durability ini adalah “setelah suatu transaksi
COMMIT, update harus bertahan di basis data” [Yudi Wibisono]. Sifat durability ini harus dipenuhi apapun
yang terjadi, untuk itu, digunakan Log untuk memastikan terpenuhinya sidat Durability ini.

Pada cerita 1 diatas, setelah Yuni melakukan transaksi pengambilan saldo sebesar Rp. 2.000.000 dan kemudian
melihat bahwa saldonya tidak berkurang sama sekali adalah salah satu contoh terabaikannya sifat durable
yang harus dimiliki transaksi. Untuk mencegah kejadian seperti ini, dilakukan penelusuran catatan Log
transaksi dengan melakukan operasi Redo.


OPERASI REDO TRANSAKSI

Mekanisme proses ini adalah dengan Me-redo(ne)             seluruh transaksi yang terekam didalam Log. Operasi ini
juga biasa disebut “Forward Recovery”.




System melakukan penelusuran LOG FILE dari backup terakhir sampai terjadinya kegagalan System. Seluruh
transaksi yang terekam pada LOG FILE tersebut di eksekusi ulang, sehingga tidak ada lagi kejadian hilangnya
data suatu transaksi.




            Pengenalan Konsep dan Komponen Database Recovery
       3    Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
1.3 LOG DALAM KEATOMIKAN DAN KONSISTENSI TRANSAKSI
Seperti yang telah anda ketahui, bahwa suatu transaksi harus memiliki sifat atomic, yaitu semua berhasil atau
semua gagal. Namun pengimplementasian pada tingkat system, masing-masing elemen operasi dari “semua”
ini tetap merupakan suatu individu operasi.

                                                  CERITA 2
Melanjutkan dari Bank Hemat pada cerita 1,

Tara adalah seorang mahasiswi yang kuliah di luar kota. Ayu adalah ibu dari Tara. Keduanya adalah nasabah
Bank Hemat. Ayu memiliki saldo Rp 7.000.000, Ayu memiliki saldo Rp 45.000.

Pada suatu hari yang sama dengan hari perbaikan UPS pada Bank Hemat, Tara meng-SMS ibunya untuk
mengirimkan uang sebesar Rp. 500.000 karena uang bulanannya hampir habis. Ayu yang menerima SMS dari
anaknya ini segera menuju ke ATM untuk mentransfer uang ke saldo Tara.

Sesaat sebelum aliran listrik putus pada jam 09:00, Ayu melakukan transaksi mentranfer uang ke saldo Tara.
Sebelum transaksi transfer uang ini “berhasil sepenuhnya”, aliran listrik tiba-tiba putus.

Pada cerita 2 diatas, yang seperti anda ketahui berarti ada 2 operasi yang harus dilakukan, yaitu:

    (1) Mengurangi saldo pada Nasabah Ayu sebanyak Rp 500.000 dan
    (2) Menambah saldo pada nasabah Tara sebanyak Rp 500.000.

Skenario diatas menceritakan bahwa transaksi ini tidak “berhasil sepenuhnya”, asumsi tidak berhasil
sepenuhnya disini adalah : operasi 1 selesai di kerjakan, sedangkan operasi 2 gagal, dikarenakan putusnya
aliran listrik.




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

Ini berarti transaksi ini belum berhasil sempurna (COMMITED ), dan transaksi ini harus di batalkan (ROLLBACK),
sesuai dengan sifat atomic yang harus dimiliki transaksi.

Untuk skenario seperti ini, Recovery data menggunakan Log ditangani dengan meng-Undo transaksi yang
gagal tersebut.


OPERASI UNDO TRANSAKSI

Seperti namanya Un-Do(ne)     , operasi ini membatalkan perubahan terakhir. Sampai kepada titik
ditemukannya catatan awal transaksi <BEGIN> pada Log. Operasi ini juga biasa disebut “Backward Recovery”.

Operasi Undo ini akan berjalan saat mekanisme Recovery RDBMS menjalankan operasi Redo dengan
menelusuri catatan Log transaksi dari awal sampai akhir dan menemukan suatu transaksi yang tidak diakhiri
dengan sempurna (tidak ditemukannya klausa COMMIT atau ROLLBACK pada Log). Berikut ilustrasinya
dengan menggunakan skernario pada cerita 2 :




           Pengenalan Konsep dan Komponen Database Recovery
       4   Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
Karena sampai pada akhir Log tidak di temukan record Log yang mengakhiri transaksi transfer uang Ayu, maka
secara otomatis transaksi transfer uang tersebut harus di batalkan ( ROLLBACK), sehingga uang Ayu kembali
utuh karena transaksi telah di batalkan.

1.4 LOG PADA VOLATILE STORAGE

Secara umum ada dua jenis media penyimpanan data (storage), yaitu Volatile storage dan Nonvolatile storage.

      Media penyimpanan sementara (Volatile Storage). Data yang ada di media penyimpanan ini hanya
       ada selama aliran listrik mengalir ke media ini. Jika aliran listrik terputus, maka data yang tersimpan
       akan hilang. Kelebihan media penyimpanan ini adalah kecepatannya yang sangat tinggi (karena
       metode pengaksesannya secara langsung). Contoh media penyimpanan jenis ini adalah RAM, Cache
       dan Register.
      Media Penyimpanan Permanen (Nonvolatile Storage). Data yang ada di media penyimpanan ini akan
       tetap ada walaupun aliran listrik terputus. Kecepatan akses media penyimpanan ini jauh lebih lambat
       di bandingkan dengan kecepatan akses Volatile Storage. Contoh media penyimpanan jenis ini adalah
       Hard Disk, Magnetic Tape, Floppy Disk dan Optical Disc.

Perbedaan umum dari kedua jenis storage ini adalah, Volatile Storage cepat tetapi sementara sedangkan
Nonvolatile Storage bersifat tetap tetapi lambat.

Catatan : Mulai dari bagian ini dan seterusnya, diasumsikan media penyimpanan volatile adalah RAM dan nonvolatile adalah Hard Disk.

Seperti telah di jelaskan sebelumnya, Tiap record pada Log menggambarkan operasi tunggal transaksi. Tiap
catatan ini harus di simpan di nonvolatile storage agar saat terjadi padamnya aliran listrik datanya tidak hilang
dan dapat digunakan untuk recovery. Seperti di ilustrasilan pada table contoh record-record Log di bawah ini.

                        Record No.                    Isi Redo Log Record                           Status
                         Record 1         <T0 begin>                                               Berhasil
                         Record 2         <T0, Saldo Yuni, 5.000.000, 3.000.000>                   Berhasil
                         Record 3         <T0, commit>                                             Berhasil
                         Record 4         <T1 begin>                                               Berhasil
                         Record 5         <T1, Saldo Ayu, 7.000.000, 6.500.000>                    Berhasil
                         Record 6         <T1, Saldo Tara, 45.000, 545.000>                         Gagal
                         Record 7         <T1, commit>                                              Gagal

                                                      Contoh record-record Log




              Pengenalan Konsep dan Komponen Database Recovery
        5     Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
Tiap nilai dari record tersebut di simpan ke Nonvolatile Storage (Hard Disk), jadi,

        Record 1  simpan ke Hard Disk,
        Record 2  simpan ke Hard Disk,
        Record 3  simpan ke Hard Disk,
        Record 4  simpan ke Hard Disk,
        Record 5  simpan ke Hard Disk,
        Record 6 dan 7  gagal karena putusnya aliran listrik.

Hal ini berakibat sangat buruk dalam hal performa,
karena kecepatan akses Hard Disk yang lambat, selain itu
hal ini juga sangat tidak efisien, karena ukuran masing-          Logical Block
masing Record Log yang sangat kecil, sehingga system              Disk drive modern dipetakan sebagai Array logical
sangat terbebani dengan operasi tulis ke Hard Disk untuk          block satu dimensi berukuran besar, dimana
tiap-tiap Record Log yang berukuran sangat kecil                  logical block adalah unit transfer data terkecil.
tersebut.                                                         Ukuran logical block tergantung dari format
                                                                  penyimpanan data yang digunakan.
Untuk mengatasi masalah performa dan ketidak efisienan
                                                                     Pada Format Penyimpanan Linux ext3
tersebut, digunakan Volatile Storage (RAM). Dengan
                                                                     Logical block berukuran tetap, yaitu 1KB.
mekanisme mem-buffer, yaitu mengumpulkan record-
record yang berukuran sangat kecil tersebut sampai                   Pada Format penyimpanan Windows NTFS
berukuran cukup besar (biasanya sampai berukuran satu                Ukuran Logical Block berfariasi tergantung dari
Logical Block [box]), baru dituliskan ke Hard Disk.                  ukuran volume(partisi)nya
                                                                     1 KB untuk Volume s/d 1 GB
     Performa  Gunakan Volatile Storage                            2 KB untuk Volume s/d 2 GB
     Efisiensi  Membuffer sampai berukuran                         4 KB untuk Volume > 2GB
      cukup besar, setelah itu dituliskan ke Hard Disk.

                                Mekanisme membuffer Record Log pada RAM sampai berukuran cukup besar
                                tersebut memiliki pengecualian, yaitu pada saat suatu transaksi COMMIT, hal ini
                                di sebabkan Sifat Durability yang harus dimiliki transaksi, sifat durability ini
                                adalah “setelah suatu transaksi COMMIT, update harus bertahan di basis data”
                                [Yudi Wibisono]. Pengecualian ini dilakukan untuk menghindari isi Buffer
                                Memory yang hilang saat kegagalan system (baik karena putusnya aliran listrik,
                                System Hang atau sebab-sebab Nonfisik lainnya).

                                Umunya DBMS mengalokasikan tempat khusus di memory untuk fasilitas pem-
                                buffer-an Log ini, yang dinamakan Log Buffer. dan membuat sebuah proses
                                khusus yang menuliskan isi Buffer dari Memory ke Hard Disk, yang di namakan
                                Proses Log Writer. Proses Log Writer ini berjalan di latar belakang
                                (background process). Sedangkan untuk Log yang dituliskan ke Hard Disk
                                dinamakan LOG FILE.

Dari sebab, akibat dan solusi diatas, kita dapat mengambil suatu kesimpulan, yaitu, Transaksi yang belum di
COMMIT data-data Lognya akan berada pada RAM. baru setelah di-COMMIT, data-data Log tersebut
dituliskanke Hard Disk oleh sebuah proses.




            Pengenalan Konsep dan Komponen Database Recovery
        6   Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
DATAFILE
Sejauh ini kita baru membahas mengenai fungsi dan sifat Log, Sekarang kita akan membahas mengenai
DATAFILE dan hubungannya dengan Log dalam pengimplementasian Backup & Recovery. Pada berbagai
Literatur, DATAFILE ini biasa dinamakan DATABASE, karena fungsinya yang menyimpan data sebenarnya.
Namun pada System Manajemen Basis Data (DBMS) nama DATABASE sendiri bukanlah sebatas tempat
penyimpanan data table, namun juga seluruh data yang dibutuhkan oleh aplikasi DBMS untuk mengelola
aplikasinya, maka dari bagian ini dan seterusnya DATABASE yang berada di Hard Disk disebut DATAFILE.
Sedangkan DATABASE yang dibuffer di RAM dinamakan Database Buffer.

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

        DATAFILE adalah komponen yang berbeda dengan LOG FILE. Perbedaan komponen tersebut
        dapat di deskripsikan seperti berikut: DATAFILE adalah tempat menyimpan data, sedangkan LOG
        FILE adalah tempat penyimpanan catatan bahwa data
        tersebut telah di simpan.

        Karena fungsinya sebagai tempat penyimpanan data (bukan
        tempat penyimpanan catatan), peranan DATAFILE menjadi
        sangat penting, karenanya, informasi yang tersimpan di
        dalamnya HARUS dapat diandalkan (Reliable). Salah satu
        cara untuk menjaga ke-Reliable-an isi dari DATAFILE ini
        adalah dengan cara menggunakan catatan pada LOG FILE
        sebagai acuan dalam proses Recovery, seperti telah di
        jabarkan pada bagian-bagian sebelumnya.

        Redundancy penyimpanan data antara DATAFILE dan LOG
        FILE menyebabkan dan semakin besarnya kebutuhan
        penyimpanan data. Namun hal ini sebanding dengan terjaminnya ke-Reliable-an isi data.

     Datafile menggunakan Buffer untuk mempecepat pengaksesan data oleh banyak user

        DATAFILE suatu perusahaan dapat berukuran ratusan, bahkan hingga ribuan gigabyte. Walaupun
        tidak semua data ini diakses secara bersamaan, namun biasanya pengaksesan banyak data secara
        bersamaan sering terjadi (pada jam sibuk misalnya).

        System Basis Data harus dapat memfasilitasi jika terjadi pengaksesan banyak data secara bersamaan
        ini, dengan tetap menjaga kecepatan tiap operasi pengaksesan data, sehingga tidak ada user yang
        menunggu lama untuk melihat/mengubah datanya.

        Untuk kebutuhan itulah DATAFILE menggunakan Buffer pada RAM. Tempat khusus di RAM
        disediakan untuk hal ini, dinamakan Database Buffer. Pem-buffer-an DATAFILE ini bukan hanya
        untuk operasi membaca data (SELECT) saja, namun juga penulisan data
        (INSERT/UPDATE/DELETE). Ini berarti perubahan data dilakukan di Database Buffer (di RAM),
        bukan langsung ke DATAFILE (di Hard Disk).

        Catatan : perbandingan kecepatan ini dapat di coba pada System DBMS pada umumnya, dengan melakukan SELECT yang sama
        sebanyak dua kali pada data berukuran besar. Pengaksesan data pertama akan membutuhkan waktu yang lebih lama dari
        pengaksesan kedua, karena pengaksesan pertama mengambil data dari Hard Disk, sedangkan pengaksesan ke dua mengambil
        data dari RAM.




           Pengenalan Konsep dan Komponen Database Recovery
      7    Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
Penulisan perubahan pada Database Buffer di RAM ke DataFile di Hard Disk terjadi pada saat kapasitas
     Database Buffer penuh dan setelah Log telah dituliskan sebelumnya.

        Seperti telah di bahas sebelumnya, Database Buffer digunakan untuk mempercepat waktu akses
        data. Data yang tersimpan di Database Buffer akan hilang jika terjadi kegagalan system (baik
        karena putusnya aliran listrik, System Hang atau sebab-sebab Nonfisik lainnya), oleh karenanya isi
        Database Buffer harus dituliskan ke DATAFILE di media penyimpanan tetap (Hard Disk).
        Penulisan Database Buffer ke DATAFILE ditangani oleh proses latar belakang yang bernama
        Database Writer.

        Algoritma yang biasa di gunakan untuk penggantian isi Database Buffer adalah Least Recently
        Used (LRU). Yaitu penulisan isi Database Buffer yang paling terakhir digunakan/diakses ke Hard
        Disk untuk memberi ruang kepada Database Buffer untuk menyimpan data baru.

        Penulisan data ke DATAFILE tidak boleh dilakukan sebelum record Log dituliskanke LOG FILE di
        media penyimpanan tetap. Karena informasi yang terkandung dalam LOG FILE digunakan untuk
        merekonstruksi keadaan DATAFILE, jika DATAFILE bermasalah.

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

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

CHECKPOINT
Misalkan kita mengubah sebagian jalan cerita dari cerita 1, dimana setelah Arus Listrik padam, tidak terjadi
kerusakan pada Hard Disk Server dan DATAFILE tidak hilang, yang hilang hanya Buffer pada RAM.

Karena meknisme penulisan DATAFILE dari Buffer RAM ke Hard Disk tidak dilakukan saat transaksi COMMIT,
berarti saat Server kembali dinyalakan, DATAFILE “belum” dalam kondisi konsisten.

 Untuk memulihkan DATAFILE ke kondisi konsisten, maka dilakukan proses Recovery dengan cara menelusuri
catatannya di LOG FILE, untuk menentukan operasi mana 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:

    1. Proses penelusuran seluruh Log membutuhkan waktu yang lama
    2. Kebanyakan transaksi yang harus di Redone telah menuliskan perubahan datanya ke DATAFILE,
       walaupun mengulangi transaksi tersebut menggunakan tidak berpengaruh (dikarenakan sifat
       idempoten), pengulangan transaksi tersebut 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 RAM ke File di Hard Disk. Aksi-aksi yang
harus dilakukan adalah :

        Menuliskan semua record Log dari Log Buffer di RAM ke LOG FILE di Hard Disk.
        Menuliskan semua DATA dari Database Buffer di RAM ke DATAFILE di Hard Disk.
        Menuliskan record <checkpoint> ke LOG FILE di Hard Disk.

Checkpoint dilakukan pada saat tertentu. Biasanya DBMS akan menentukan waktu selang tertentu dalam
pengambilan Chekpoint, atau jika terjadi event yang di tentukan oleh system (misalnya pada saat banyaknya
transaksi sejak pengambilan Checkpoint terakhir telah bejumlah tertentu).



           Pengenalan Konsep dan Komponen Database Recovery
       8   Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
KEGAGALAN SYSTEM DAN PROSES RECOVERY
Pada kegagalan System, baik disebabkan oleh putusnya aliran listrik ataupun karena aplikasi DBMS harus di
restart, isi Buffer pada di RAM hilang, baik Log Buffer maupun Database Buffer.

Pada saat system restart dan melakukan proses recovery, system akan membuat dua daftar :

      [daftar-undo] yang berisi transaksi-transaksi yang harus di Undo (Dibatalakan-ROLLBACK), dan
      [daftar-redo] yang berisi transaksi-transaksi yang harus di Redo (dikerjakan ulang).

System membuat kedua daftar tersebut dengan urutan sebagai berikut : pertama-tama kedua daftar tersebut
kosong. System menelusuri Log pada LOG FILE di Hard Disk dari <checkpoint> kedepan, dengan rincian
urutan :

     1. Buat [daftar-redo] dan [daftar-undo] kosong.
     2. Baca Log dari <checkpoint>, masukkan seluruh transaksi yang sedang berjalan pada saat
        <checkpoint> kedalam [daftar-undo].
     3. Mulai telusuri Log kedepan dari <checkpoint>
            a. jika ditemukan record <Ti, begin> pindahkan transaksi Ti tersebut ke [daftar-undo]
            b. jika ditemukan record <Ti, commit> atau <Ti, rollback> pindahkan transaksi Ti
                 tersebut ke [daftar-redo]
     4. Setelah kedua daftar tersebut di buat, Ulangi lagi penelusuran Log dari <checkpoint> ke depan.
        Ulangi seluruh transaksi yang ada di [daftar-Redo], sampai akhir dari Log.
     5. Setelah seluruh transaksi yang ada di [daftar-redo] telah di ulangi. Telusuri Log dari belakang (dari
        akhir Log) batalkan seluruh perubahan yang terjadi dari transaksi yang berada di [daftar-undo]
        sampai ditemukannya record Log <begin> untuk transaksi tersebut.

Asumsi penulis
Pada kedua referensi :

    [SKS 01] A. Silberchatz, H.F. Korth, S. Sudashan, Database System Concept, Forth Edition, McGwar-Hill Companies, New York, 2002
    [CJD 01] C.J. Date, An Introduction to Database System, Seventh Edition, Addison-Weasley, Massachusetts, 2000

menggunakan urutan perose Recovery dengan Undo-terlebih dahulu baru kemudian redo. Hal ini dilakukan untuk menghindari
inkonsistensi data dikarenakan transaksi yang rollback. Pada kedua sumber referensi tersebut operasi rollback di asumsikan berbeda.

    Pada [SKS 01] transaksi yang rollback di masukkan kedalam daftar-undo
    Pada [CJD 01] transaksi yang rollback sama sekali tidak masuk dalam daftar manapun dalam proses recovery.

Sedangkan pada referensi :

 [CBJM 01] Chip Dawes, Bob Bryla, Joseph C. Johnson, Mathew Weishan, OCA:Oracle 10g™ Administration Study Guide, SYBEX, 2005

Digunakan sebaliknya, yaitu operasi Redo terlebih dahulu, baru kemudian Undo. Karena penulis membuat tulisan ini untuk Pelatihan
Oracle lab Basis Data Ilmu Komputer Upi, maka, skema recovery Oracle-lah yang digunakan, yaitu operasi Redo terlebih dahulu baru
operasi Undo. (sebagai catatan, kebanyakan DBMS modern menggunakan skema recovery Redo-then-undo ini).
Salah satu cara yang penulis asumsikan adalah bahwa operasi Rollback transaksi dimasukkan kedalam daftar-redo, sehingga walaupun
transaksi tersebut di Rollback (dibatalakan), pada proses recovery, tiap tahap dari transaksi tersebut di kerjakan ulang (termasuk operasi
rollback-nya).
Tahap pengulangan transaksi yang di rollback ini, walau membuat pekerjaan tambahan dalam proses recovery, namun tetap memastikan
data konsisten, dan penulis mengasumsikan, memasukkan transaksi yang rollback kedalam daftar-redo cocok untuk urutan peroses
Recovery dengan operasi Redo terlebuh dahulu, baru kemudian Undo.




              Pengenalan Konsep dan Komponen Database Recovery
        9     Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
SOAL LATIHAN PROSES RECOVERY




        Kejadian  Waktu                  W1       W2       W3      W4       W5      W6       W7       W8    W9   W10   W11   W12
            Catat Log Ke Log Buffer        -        -        -       -        -       -        -        -     -    -     -     -
         Tulis Log Buffer ke Log File                       +        +        +                 +                        +
Ubah Basis data ke Basis data Buffer        -       -       -        -        -        -        -        -   -     -     -     -
  Tulis Basis data Buffer ke Datafile                                +                                   +

 Keterangan Tabel :   Tanda Negatif (-) penulisan ke RAM.        Tanda Positif (+) penulisan ke Hard Disk.


 PENULISAN DATA KE RAM
 Seperti telah di jelaskan pada bagian-bagian sebelumnya, operasi baca/tulis ke Hard Disk sebisa mungkin di
 minimalkan untuk mempercepat pengaksesan data. Oleh karena itu (seperti diilustrasikan pada table diatas),
 seluruh operasi baca/tulis data transaksi baik record Log maupun Data dari Basis data dilakukan di RAM.


 PENULISAN DATA DI HARD DISK
 Pada penulisan ke Hard Disk, Ada 4 kejadian penting yang terjadi, yaitu : Transaksi COMMIT , CHECKPOINT,
 Database Buffer Penuh dan KEGAGALAN SYSTEM.

      Transaksi COMMIT
          Dalam kejadian ini, isi dari seluruh Log Buffer di RAM dituliskan ke LOG FILE di Hard Disk.
          Transaksi T4 dan T6 tidak COMMIT sampai terjadi KEGAGALAN SYSTEM , karenanya record Log
          <T4,COMMIT> dan <T6,COMMIT> tidak pernah dituliskan ke Hard Disk.

      CHECKPOINT
         Dalam kejadian ini, isi dari Log Buffer dan Database Buffer di RAM dituliskan secara paksa ke
         LOG FILE dan DATAFILE di Hard Disk, dengan tambahan suatu Record khusus <checkpoint>
         dituliskan ke LOG FILE.

      Database Buffer Penuh
          Dalam kejadian ini, isi dari Database Buffer di RAM dituliskanke DATAFILE di Hard Disk.

      Kegagalan System
          Dalam kejadian ini, seluruh isi dari Buffer di RAM hilang, baik Log Buffer maupun Database
          Buffer. Kegagalan system yang dimaksudkan disini adalah kegagalan system yang tidak melibatkan
          hilangnya DataFile (seperti rusaknya Hard Disk), melainkan kegagalan system yang menyebabkan
          hilangnya data yang tersimpan di Buffer RAM (karena putusnya aliran listrik, System Hang, dsb).



               Pengenalan Konsep dan Komponen Database Recovery
       10      Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
Isilah pertanyaan-pertanyaan berikut beserta penjelasannya. Format jawaban
pertanyaan-pertanyaan berikut adalah dengan menentukan operasi apa yang harus dilakukan pada saat
system melakukan Opearsi Recovery, beserta penjelasan mengenai proses recovery dari transaksi tersebut.

PROSES RECOVERY
Proses Recovery untuk tiap-tiap transaksi diatas dijelaskan sebagai berikut :


TRANSAKSI T 1
    Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________
    Penjelasan penanganan Transaksi pada proses Recovery :
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________


TRANSAKSI T 2
    Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________

    Penjelasan penanganan Transaksi pada proses Recovery :
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________


TRANSAKSI T 3
    Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________

    Penjelasan penanganan Transaksi pada proses Recovery :
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________
    ______________________________________________________________________________________




            Pengenalan Konsep dan Komponen Database Recovery
     11     Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
TRANSAKSI T 4
   Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________

   Penjelasan penanganan Transaksi pada proses Recovery :
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________


TRANSAKSI T 5
   Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________

   Penjelasan penanganan Transaksi pada proses Recovery :
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________


TRANSAKSI T 6
   Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________

   Penjelasan penanganan Transaksi pada proses Recovery :
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________
   ______________________________________________________________________________________




         Pengenalan Konsep dan Komponen Database Recovery
   12    Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI

Contenu connexe

Tendances

Pembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja onlinePembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja online
andiseprianto
 
Toko online erd dan analisis sistem informasi penjualan berbasis web - mode...
Toko online   erd dan analisis sistem informasi penjualan berbasis web - mode...Toko online   erd dan analisis sistem informasi penjualan berbasis web - mode...
Toko online erd dan analisis sistem informasi penjualan berbasis web - mode...
brisma pambudi
 

Tendances (20)

membuat function dalam mysql
membuat function dalam mysqlmembuat function dalam mysql
membuat function dalam mysql
 
Sistem pendaftaran pasien dan rekam medis klinik
Sistem pendaftaran pasien dan rekam medis klinikSistem pendaftaran pasien dan rekam medis klinik
Sistem pendaftaran pasien dan rekam medis klinik
 
Tugas State machine diagram - Slide
Tugas State machine diagram - SlideTugas State machine diagram - Slide
Tugas State machine diagram - Slide
 
Makalah analisis dan perancangan Sistem Informasi
Makalah analisis dan perancangan Sistem InformasiMakalah analisis dan perancangan Sistem Informasi
Makalah analisis dan perancangan Sistem Informasi
 
Top 35-interview-questions-on-sap-abap
Top 35-interview-questions-on-sap-abapTop 35-interview-questions-on-sap-abap
Top 35-interview-questions-on-sap-abap
 
Analisis Sistem Informasi Penjualan Alfamart
Analisis Sistem Informasi Penjualan Alfamart Analisis Sistem Informasi Penjualan Alfamart
Analisis Sistem Informasi Penjualan Alfamart
 
Kp. 4 struktur penyimpanan
Kp. 4 struktur penyimpananKp. 4 struktur penyimpanan
Kp. 4 struktur penyimpanan
 
Makalah database manajemen sistem
Makalah database manajemen sistemMakalah database manajemen sistem
Makalah database manajemen sistem
 
Pemodelan proses
Pemodelan prosesPemodelan proses
Pemodelan proses
 
Konsep perlindungan keamanan database
Konsep perlindungan keamanan databaseKonsep perlindungan keamanan database
Konsep perlindungan keamanan database
 
Pembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja onlinePembuatan uml pada toko belanja online
Pembuatan uml pada toko belanja online
 
Melihat isi file dari direktori aktif
Melihat isi file dari direktori aktifMelihat isi file dari direktori aktif
Melihat isi file dari direktori aktif
 
Tugas dbms powerpoint
Tugas dbms powerpointTugas dbms powerpoint
Tugas dbms powerpoint
 
Toko online erd dan analisis sistem informasi penjualan berbasis web - mode...
Toko online   erd dan analisis sistem informasi penjualan berbasis web - mode...Toko online   erd dan analisis sistem informasi penjualan berbasis web - mode...
Toko online erd dan analisis sistem informasi penjualan berbasis web - mode...
 
Makalah Web Programming 1
Makalah Web Programming 1Makalah Web Programming 1
Makalah Web Programming 1
 
Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)Laporan praktikum modul 7 (dml)
Laporan praktikum modul 7 (dml)
 
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQLKelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
Kelompok 8 - Implementasi Role & Privilege pada database Oracle & my SQL
 
Data Warehousing and OLAP I
Data Warehousing and OLAP IData Warehousing and OLAP I
Data Warehousing and OLAP I
 
RPL 1 (Lama) - Analisis Kebutuhan Perangkat Lunak (1)
RPL 1 (Lama) - Analisis Kebutuhan Perangkat Lunak (1)RPL 1 (Lama) - Analisis Kebutuhan Perangkat Lunak (1)
RPL 1 (Lama) - Analisis Kebutuhan Perangkat Lunak (1)
 
Membuat buku tamu dengan php
Membuat buku tamu dengan phpMembuat buku tamu dengan php
Membuat buku tamu dengan php
 

Similaire à Pengenalan konsep dan komponen Oracle database recovery

Aplikasi jual beli online
Aplikasi jual beli onlineAplikasi jual beli online
Aplikasi jual beli online
Hendra Fillan
 
Muhammad farhan fadhlillah 43218010171 tm14
Muhammad farhan fadhlillah 43218010171 tm14Muhammad farhan fadhlillah 43218010171 tm14
Muhammad farhan fadhlillah 43218010171 tm14
FarhanFadhlillah1
 
Tugas pengelolaan proyek sistem informasi
Tugas pengelolaan proyek sistem informasiTugas pengelolaan proyek sistem informasi
Tugas pengelolaan proyek sistem informasi
Yudi Efriansyah
 

Similaire à Pengenalan konsep dan komponen Oracle database recovery (17)

Saga Pattern in Microservice
Saga Pattern in MicroserviceSaga Pattern in Microservice
Saga Pattern in Microservice
 
Oracle transaksi
Oracle transaksiOracle transaksi
Oracle transaksi
 
Aplikasi jual beli online
Aplikasi jual beli onlineAplikasi jual beli online
Aplikasi jual beli online
 
Tipe rcovery database
Tipe rcovery databaseTipe rcovery database
Tipe rcovery database
 
Power Point: Software Akuntansi Accurate
Power Point: Software Akuntansi AccuratePower Point: Software Akuntansi Accurate
Power Point: Software Akuntansi Accurate
 
Transaction
TransactionTransaction
Transaction
 
Transaction.pptx
Transaction.pptxTransaction.pptx
Transaction.pptx
 
Modul Sistem Operasi Sinkronisasi
Modul Sistem Operasi SinkronisasiModul Sistem Operasi Sinkronisasi
Modul Sistem Operasi Sinkronisasi
 
Makalah Sistem Operasi
Makalah Sistem OperasiMakalah Sistem Operasi
Makalah Sistem Operasi
 
Muhammad farhan fadhlillah 43218010171 tm14
Muhammad farhan fadhlillah 43218010171 tm14Muhammad farhan fadhlillah 43218010171 tm14
Muhammad farhan fadhlillah 43218010171 tm14
 
Zulyanti Megasari - Konkurensi
Zulyanti Megasari - KonkurensiZulyanti Megasari - Konkurensi
Zulyanti Megasari - Konkurensi
 
Materi 11
Materi 11Materi 11
Materi 11
 
Ferli Apriadi - Konkurensi
Ferli Apriadi - KonkurensiFerli Apriadi - Konkurensi
Ferli Apriadi - Konkurensi
 
Tugas pengelolaan proyek sistem informasi
Tugas pengelolaan proyek sistem informasiTugas pengelolaan proyek sistem informasi
Tugas pengelolaan proyek sistem informasi
 
Bab i ta agus
Bab i ta agusBab i ta agus
Bab i ta agus
 
Bab i new
Bab i newBab i new
Bab i new
 
Pertemuan 1dan 2
Pertemuan 1dan 2Pertemuan 1dan 2
Pertemuan 1dan 2
 

Plus de Ammar Shadiq

PostgreSQL Stored-procedure
PostgreSQL Stored-procedurePostgreSQL Stored-procedure
PostgreSQL Stored-procedure
Ammar Shadiq
 
PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL Trigger
Ammar Shadiq
 
PostgreSQL Transaksi
PostgreSQL TransaksiPostgreSQL Transaksi
PostgreSQL Transaksi
Ammar Shadiq
 

Plus de Ammar Shadiq (7)

Statement of Accomplisment from Online Machine Learning Class
Statement of Accomplisment from Online Machine Learning ClassStatement of Accomplisment from Online Machine Learning Class
Statement of Accomplisment from Online Machine Learning Class
 
Mendeteksi Topik Berita Pada Aliran Berita Online Berbahasa Indonesia
Mendeteksi Topik Berita Pada Aliran Berita Online Berbahasa IndonesiaMendeteksi Topik Berita Pada Aliran Berita Online Berbahasa Indonesia
Mendeteksi Topik Berita Pada Aliran Berita Online Berbahasa Indonesia
 
PostgreSQL Stored-procedure
PostgreSQL Stored-procedurePostgreSQL Stored-procedure
PostgreSQL Stored-procedure
 
PostgreSQL Trigger
PostgreSQL TriggerPostgreSQL Trigger
PostgreSQL Trigger
 
PostgreSQL Transaksi
PostgreSQL TransaksiPostgreSQL Transaksi
PostgreSQL Transaksi
 
Java numbers
Java numbersJava numbers
Java numbers
 
Pelatihan Java - Number & String
Pelatihan Java - Number & StringPelatihan Java - Number & String
Pelatihan Java - Number & String
 

Pengenalan konsep dan komponen Oracle database recovery

  • 1. Pengenalan Konsep dan Komponen Database Recovery M. Ammar Shadiq Ilmu Komputer  Universitas Pendidikan Indonesia, Bandung 26 April 2009 [ Versi.Latihan.Beta 1 ] RECOVERY TRANSAKSI System komputer, seperti perangkat-perangkat lain, tidaklah luput dari kegagalan yang diakibatkan berbagai hal, seperti : disk crash, padam listrik, software error, kebakaran di ruang server, bahkan sabotase. Kegagalan system dapat mengakibatkan hilangnya data. Untuk itulah System Basis Data harus melaksanakan tindakan tertentu untuk menjamin sifat transaksi yang Atomik dan Bertahan (Durable). Bagian terintegrasi dari sebuah System Basis Data adalah recovery scheme (rencana pemulihan) yang dapat memulihkan Basis Data kepada keadaan konsisten sebelum kegagalan system. Kenapa kegagalan system saat transaksi merupakan hal yang harus di perhatikan secara seksama? Hal ini bersangkut paut dengan tiga sifat yang harus dimiliki sebuah transaksi, yaitu : Atomic, yaitu suatu transaksi berhasil seluruhnya atau gagal seluruhnya Consistency, yaitu suatu transaksi bersifat mempertahankan kebenaran data, dan Durability, yaitu saat suatu transaksi telah di COMMIT maka perubahan data yang telah dilakukan pada transaksi itu harus bertahan pada Basis Data, tidak peduli apa yang terjadi. Hubungan Durability dengan Consistency adalah : perubahan data yang telah dilakukan pada transaksi jika tidak bertahan pada basis data akan menyebabkan tidak konsistenannya data. Ilustrasi hubungan fitur dan solusi transaksi Seperti dideskripsikan pada gambar diatas, Recovery merupakan solusi dari hampir semua fitur ACID yang harus dimiliki transaksi, oleh karena itu transaksi tidak hanya di sebut sebagai suatu unit pekerjaan, namun juga sebagai unit recovery. Tulisan ini akan membahas mengenai Recovery. Karena pada DBMS modern, konsep recovery ini sangat penting, bahkan konsep Backup pada DBMS modern tidak akan dapat dimengerti sepenuhnya tanpa pengertian yang cukup tentang konsep recovery. Hampir seluruh DBMS modern menggunakan konsep Recovery berbasis Log. Konsep dan penerapannya dalam System Basis Data akan di bahas pada bagian-bagian berikut. Pengenalan Konsep dan Komponen Database Recovery 1 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
  • 2. RECOVERY BERBASIS LOG CERITA 1 Bank Hemat adalah Bank yang memiliki banyak nasabah, Bank ini menggunakan Basis Data untuk menampung seluruh kegiatan transaksi dan data keuangan nasabah. Bob adalah Administrator Basis Data Bank Hemat yang bertanggung jawab akan System Basis Data Bank tersebut. Pada suatu hari, teknisi maintenance menemukan bahwa umur baterai pada UPS server Basis Data telah sampai pada batas pemakaian. Perbaikan UPS membutuhkan waktu selama 6 jam dan akan dilaksanakan pada keesokan harinya jam 06:00. Malamnya Bob melakukan Backup DATAFILE saldo nasabah sebelum perbaikan. Bob melakukan Backup seluruh DATAFILE nasabah kedalam media Optik DVD, sedangkan LOG FILE tidak di backup karena telah di replikasi pada beberapa Hard Disk. Proses Backup ini baru selesai tepat saat Tim teknisi datang untuk melakukan perbaikan UPS (Jam 06:00). Saat teknisi melakukan perbaikan UPS, server Basis Data di nonaktifkan sebentar untuk mencabut sambungan listrik dari UPS ke server. Kepala operasional memutuskan bahwa selama perbaikan UPS, Server akan berjalan tanpa menggunakan UPS. Pada hari yang sama, seorang nasabah bernama Yuni pada jam 08:00 mengambil uang dari tabungannya sebesar Rp 2.000.000 dari ATM. Sehingga saldo tabungan Yuni berkurang dari Rp. 5.000.000 menjadi Rp 3.000.000. Pada jam 09:00 di hari yang sama, Perusahaan listrik memutuskan bahwa aliran listrik seluruh kota akan di putus selama 15 menit untuk maintenance di karenakan Banjir. Praktis aliran listrik seluruh kota terputus, termasuk aliran listrik ke server basis data bank Hemat. 15 menit kemudian listrik kembali menyala, tetapi saat Bob mengaktifkan kembali server Basis Data, ternyata server tidak mau menyala dengan benar dan Bob menemukan bahwa Hard Disk yang menyimpan DATAFILE nasabah telah rusak permanen di karenakan putusnya aliran listrik secara tiba-tiba. Akhirnya Bob memutuskan untuk mengembalikan kondisi Basis Data menggunakan backup terakhir yang ada pada DVD (Backup jam 06:00) ke Hard Disk baru, tetapi Bob tidak melakukan proses recovery menggunakan Data Log Transaksi. Keesokan harinya saat Yuni kembali ke ATM, dia terkejut karena menemukan saldo tabungannya masih Rp. 5.000.000. Waktu Kegiatan dan Kejadian Ilustrasi Bob membackup DATAFILE ke DVD 06:00 Teknisi menonaktifkan UPS untuk di perbaiki 08:00 Yuni melakukan penarikan uang Rp 2.000.000 Perusahaan listrik memutuskan aliran listrik 09:00 Server basis data bank hemat mati secara tiba-tiba. Aliran listrik kembali menyala. Bob menghidupkan kembali server Basis Data dan 09:15 menemukan bahwa Hard Disk rusak, lalu Bob mentransfer data backup terakhir (jam 06:00) ke Hard Disk baru. Yuni menemukan bahwa saldo tabungannya masih Hari Esok Inkonsistensi Data Rp. 5.000.000, bukan Rp 3.000.000 seperti seharusnya. Pengenalan Konsep dan Komponen Database Recovery 2 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
  • 3. Pada cerita diatas, jika saja Bob bukan hanya menggunakan Backup terakhir, tetapi juga Log seluruh transaksi terakhir sampai dengan sesaat sebelum aliran listrik putus, maka Yuni akan menemukan saldo tabungannya Rp. 3.000.000 seperti seharusnya dan Bank tidak akan mengalami kerugian. 1.1 LOG Log adalah catatan transaksi secara mendetail. setiap transaksi yang berjalan pada server basis data di catat secara mendetail pada Log ini. Tiap record pada Log menggambarkan operasi tunggal transaksi yang menuliskan data, Record Log tersebut berisi : 1. Nama transaksi : Nama unik dari transaksi yang menjalankan operasi write 2. Nama data item : Nama unik dari data item yang di tuliskan 3. Nilai lama : Nilai data item sebelum operasi write 4. Nilai baru : Nilai yang akan dimiliki data item setelah operasi write Sebagai tambahan, ada Record Log khusus yang menandakan awal dan akhir transaksi. Record No. Isi Redo Log Record Status Record 1 <T0, begin> Berhasil Record 2 <T0, Saldo Yuni, 5.000.000, 3.000.000> Berhasil Record 3 <T0, commit> Berhasil Contoh isi Log Proses Recovery menggunakan Log harus memiliki sifat Idempoten, yaitu pengeksekusian suatu operasi berulang kali, menghasilkan hasil yang sama dengan eksekusi satu kali. 1.2 LOG DALAM DURABILITY TRANSAKSI Sifat Durability adalah sifat yang harus dimiliki transaksi, sifat durability ini adalah “setelah suatu transaksi COMMIT, update harus bertahan di basis data” [Yudi Wibisono]. Sifat durability ini harus dipenuhi apapun yang terjadi, untuk itu, digunakan Log untuk memastikan terpenuhinya sidat Durability ini. Pada cerita 1 diatas, setelah Yuni melakukan transaksi pengambilan saldo sebesar Rp. 2.000.000 dan kemudian melihat bahwa saldonya tidak berkurang sama sekali adalah salah satu contoh terabaikannya sifat durable yang harus dimiliki transaksi. Untuk mencegah kejadian seperti ini, dilakukan penelusuran catatan Log transaksi dengan melakukan operasi Redo. OPERASI REDO TRANSAKSI Mekanisme proses ini adalah dengan Me-redo(ne) seluruh transaksi yang terekam didalam Log. Operasi ini juga biasa disebut “Forward Recovery”. System melakukan penelusuran LOG FILE dari backup terakhir sampai terjadinya kegagalan System. Seluruh transaksi yang terekam pada LOG FILE tersebut di eksekusi ulang, sehingga tidak ada lagi kejadian hilangnya data suatu transaksi. Pengenalan Konsep dan Komponen Database Recovery 3 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
  • 4. 1.3 LOG DALAM KEATOMIKAN DAN KONSISTENSI TRANSAKSI Seperti yang telah anda ketahui, bahwa suatu transaksi harus memiliki sifat atomic, yaitu semua berhasil atau semua gagal. Namun pengimplementasian pada tingkat system, masing-masing elemen operasi dari “semua” ini tetap merupakan suatu individu operasi. CERITA 2 Melanjutkan dari Bank Hemat pada cerita 1, Tara adalah seorang mahasiswi yang kuliah di luar kota. Ayu adalah ibu dari Tara. Keduanya adalah nasabah Bank Hemat. Ayu memiliki saldo Rp 7.000.000, Ayu memiliki saldo Rp 45.000. Pada suatu hari yang sama dengan hari perbaikan UPS pada Bank Hemat, Tara meng-SMS ibunya untuk mengirimkan uang sebesar Rp. 500.000 karena uang bulanannya hampir habis. Ayu yang menerima SMS dari anaknya ini segera menuju ke ATM untuk mentransfer uang ke saldo Tara. Sesaat sebelum aliran listrik putus pada jam 09:00, Ayu melakukan transaksi mentranfer uang ke saldo Tara. Sebelum transaksi transfer uang ini “berhasil sepenuhnya”, aliran listrik tiba-tiba putus. Pada cerita 2 diatas, yang seperti anda ketahui berarti ada 2 operasi yang harus dilakukan, yaitu: (1) Mengurangi saldo pada Nasabah Ayu sebanyak Rp 500.000 dan (2) Menambah saldo pada nasabah Tara sebanyak Rp 500.000. Skenario diatas menceritakan bahwa transaksi ini tidak “berhasil sepenuhnya”, asumsi tidak berhasil sepenuhnya disini adalah : operasi 1 selesai di kerjakan, sedangkan operasi 2 gagal, dikarenakan putusnya aliran listrik. Jika kondisi ini dibiarkan begitu saja, akan menyebabkan ketidak konsistenan data, yaitu : Saldo Ayu berkurang Rp 500.000 sedangkan saldo Tara tidak bertambah Rp 500.000. Ini berarti transaksi ini belum berhasil sempurna (COMMITED ), dan transaksi ini harus di batalkan (ROLLBACK), sesuai dengan sifat atomic yang harus dimiliki transaksi. Untuk skenario seperti ini, Recovery data menggunakan Log ditangani dengan meng-Undo transaksi yang gagal tersebut. OPERASI UNDO TRANSAKSI Seperti namanya Un-Do(ne) , operasi ini membatalkan perubahan terakhir. Sampai kepada titik ditemukannya catatan awal transaksi <BEGIN> pada Log. Operasi ini juga biasa disebut “Backward Recovery”. Operasi Undo ini akan berjalan saat mekanisme Recovery RDBMS menjalankan operasi Redo dengan menelusuri catatan Log transaksi dari awal sampai akhir dan menemukan suatu transaksi yang tidak diakhiri dengan sempurna (tidak ditemukannya klausa COMMIT atau ROLLBACK pada Log). Berikut ilustrasinya dengan menggunakan skernario pada cerita 2 : Pengenalan Konsep dan Komponen Database Recovery 4 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
  • 5. Karena sampai pada akhir Log tidak di temukan record Log yang mengakhiri transaksi transfer uang Ayu, maka secara otomatis transaksi transfer uang tersebut harus di batalkan ( ROLLBACK), sehingga uang Ayu kembali utuh karena transaksi telah di batalkan. 1.4 LOG PADA VOLATILE STORAGE Secara umum ada dua jenis media penyimpanan data (storage), yaitu Volatile storage dan Nonvolatile storage.  Media penyimpanan sementara (Volatile Storage). Data yang ada di media penyimpanan ini hanya ada selama aliran listrik mengalir ke media ini. Jika aliran listrik terputus, maka data yang tersimpan akan hilang. Kelebihan media penyimpanan ini adalah kecepatannya yang sangat tinggi (karena metode pengaksesannya secara langsung). Contoh media penyimpanan jenis ini adalah RAM, Cache dan Register.  Media Penyimpanan Permanen (Nonvolatile Storage). Data yang ada di media penyimpanan ini akan tetap ada walaupun aliran listrik terputus. Kecepatan akses media penyimpanan ini jauh lebih lambat di bandingkan dengan kecepatan akses Volatile Storage. Contoh media penyimpanan jenis ini adalah Hard Disk, Magnetic Tape, Floppy Disk dan Optical Disc. Perbedaan umum dari kedua jenis storage ini adalah, Volatile Storage cepat tetapi sementara sedangkan Nonvolatile Storage bersifat tetap tetapi lambat. Catatan : Mulai dari bagian ini dan seterusnya, diasumsikan media penyimpanan volatile adalah RAM dan nonvolatile adalah Hard Disk. Seperti telah di jelaskan sebelumnya, Tiap record pada Log menggambarkan operasi tunggal transaksi. Tiap catatan ini harus di simpan di nonvolatile storage agar saat terjadi padamnya aliran listrik datanya tidak hilang dan dapat digunakan untuk recovery. Seperti di ilustrasilan pada table contoh record-record Log di bawah ini. Record No. Isi Redo Log Record Status Record 1 <T0 begin> Berhasil Record 2 <T0, Saldo Yuni, 5.000.000, 3.000.000> Berhasil Record 3 <T0, commit> Berhasil Record 4 <T1 begin> Berhasil Record 5 <T1, Saldo Ayu, 7.000.000, 6.500.000> Berhasil Record 6 <T1, Saldo Tara, 45.000, 545.000> Gagal Record 7 <T1, commit> Gagal Contoh record-record Log Pengenalan Konsep dan Komponen Database Recovery 5 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
  • 6. Tiap nilai dari record tersebut di simpan ke Nonvolatile Storage (Hard Disk), jadi,  Record 1  simpan ke Hard Disk,  Record 2  simpan ke Hard Disk,  Record 3  simpan ke Hard Disk,  Record 4  simpan ke Hard Disk,  Record 5  simpan ke Hard Disk,  Record 6 dan 7  gagal karena putusnya aliran listrik. Hal ini berakibat sangat buruk dalam hal performa, karena kecepatan akses Hard Disk yang lambat, selain itu hal ini juga sangat tidak efisien, karena ukuran masing- Logical Block masing Record Log yang sangat kecil, sehingga system Disk drive modern dipetakan sebagai Array logical sangat terbebani dengan operasi tulis ke Hard Disk untuk block satu dimensi berukuran besar, dimana tiap-tiap Record Log yang berukuran sangat kecil logical block adalah unit transfer data terkecil. tersebut. Ukuran logical block tergantung dari format penyimpanan data yang digunakan. Untuk mengatasi masalah performa dan ketidak efisienan Pada Format Penyimpanan Linux ext3 tersebut, digunakan Volatile Storage (RAM). Dengan Logical block berukuran tetap, yaitu 1KB. mekanisme mem-buffer, yaitu mengumpulkan record- record yang berukuran sangat kecil tersebut sampai Pada Format penyimpanan Windows NTFS berukuran cukup besar (biasanya sampai berukuran satu Ukuran Logical Block berfariasi tergantung dari Logical Block [box]), baru dituliskan ke Hard Disk. ukuran volume(partisi)nya 1 KB untuk Volume s/d 1 GB  Performa  Gunakan Volatile Storage 2 KB untuk Volume s/d 2 GB  Efisiensi  Membuffer sampai berukuran 4 KB untuk Volume > 2GB cukup besar, setelah itu dituliskan ke Hard Disk. Mekanisme membuffer Record Log pada RAM sampai berukuran cukup besar tersebut memiliki pengecualian, yaitu pada saat suatu transaksi COMMIT, hal ini di sebabkan Sifat Durability yang harus dimiliki transaksi, sifat durability ini adalah “setelah suatu transaksi COMMIT, update harus bertahan di basis data” [Yudi Wibisono]. Pengecualian ini dilakukan untuk menghindari isi Buffer Memory yang hilang saat kegagalan system (baik karena putusnya aliran listrik, System Hang atau sebab-sebab Nonfisik lainnya). Umunya DBMS mengalokasikan tempat khusus di memory untuk fasilitas pem- buffer-an Log ini, yang dinamakan Log Buffer. dan membuat sebuah proses khusus yang menuliskan isi Buffer dari Memory ke Hard Disk, yang di namakan Proses Log Writer. Proses Log Writer ini berjalan di latar belakang (background process). Sedangkan untuk Log yang dituliskan ke Hard Disk dinamakan LOG FILE. Dari sebab, akibat dan solusi diatas, kita dapat mengambil suatu kesimpulan, yaitu, Transaksi yang belum di COMMIT data-data Lognya akan berada pada RAM. baru setelah di-COMMIT, data-data Log tersebut dituliskanke Hard Disk oleh sebuah proses. Pengenalan Konsep dan Komponen Database Recovery 6 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
  • 7. DATAFILE Sejauh ini kita baru membahas mengenai fungsi dan sifat Log, Sekarang kita akan membahas mengenai DATAFILE dan hubungannya dengan Log dalam pengimplementasian Backup & Recovery. Pada berbagai Literatur, DATAFILE ini biasa dinamakan DATABASE, karena fungsinya yang menyimpan data sebenarnya. Namun pada System Manajemen Basis Data (DBMS) nama DATABASE sendiri bukanlah sebatas tempat penyimpanan data table, namun juga seluruh data yang dibutuhkan oleh aplikasi DBMS untuk mengelola aplikasinya, maka dari bagian ini dan seterusnya DATABASE yang berada di Hard Disk disebut DATAFILE. Sedangkan DATABASE yang dibuffer di RAM dinamakan Database Buffer. Datafile adalah file fisik yang menyimpan data yang telah di insert kedalam tiap table pada DBMS. DATAFILE adalah komponen yang berbeda dengan LOG FILE. Perbedaan komponen tersebut dapat di deskripsikan seperti berikut: DATAFILE adalah tempat menyimpan data, sedangkan LOG FILE adalah tempat penyimpanan catatan bahwa data tersebut telah di simpan. Karena fungsinya sebagai tempat penyimpanan data (bukan tempat penyimpanan catatan), peranan DATAFILE menjadi sangat penting, karenanya, informasi yang tersimpan di dalamnya HARUS dapat diandalkan (Reliable). Salah satu cara untuk menjaga ke-Reliable-an isi dari DATAFILE ini adalah dengan cara menggunakan catatan pada LOG FILE sebagai acuan dalam proses Recovery, seperti telah di jabarkan pada bagian-bagian sebelumnya. Redundancy penyimpanan data antara DATAFILE dan LOG FILE menyebabkan dan semakin besarnya kebutuhan penyimpanan data. Namun hal ini sebanding dengan terjaminnya ke-Reliable-an isi data. Datafile menggunakan Buffer untuk mempecepat pengaksesan data oleh banyak user DATAFILE suatu perusahaan dapat berukuran ratusan, bahkan hingga ribuan gigabyte. Walaupun tidak semua data ini diakses secara bersamaan, namun biasanya pengaksesan banyak data secara bersamaan sering terjadi (pada jam sibuk misalnya). System Basis Data harus dapat memfasilitasi jika terjadi pengaksesan banyak data secara bersamaan ini, dengan tetap menjaga kecepatan tiap operasi pengaksesan data, sehingga tidak ada user yang menunggu lama untuk melihat/mengubah datanya. Untuk kebutuhan itulah DATAFILE menggunakan Buffer pada RAM. Tempat khusus di RAM disediakan untuk hal ini, dinamakan Database Buffer. Pem-buffer-an DATAFILE ini bukan hanya untuk operasi membaca data (SELECT) saja, namun juga penulisan data (INSERT/UPDATE/DELETE). Ini berarti perubahan data dilakukan di Database Buffer (di RAM), bukan langsung ke DATAFILE (di Hard Disk). Catatan : perbandingan kecepatan ini dapat di coba pada System DBMS pada umumnya, dengan melakukan SELECT yang sama sebanyak dua kali pada data berukuran besar. Pengaksesan data pertama akan membutuhkan waktu yang lebih lama dari pengaksesan kedua, karena pengaksesan pertama mengambil data dari Hard Disk, sedangkan pengaksesan ke dua mengambil data dari RAM. Pengenalan Konsep dan Komponen Database Recovery 7 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
  • 8. Penulisan perubahan pada Database Buffer di RAM ke DataFile di Hard Disk terjadi pada saat kapasitas Database Buffer penuh dan setelah Log telah dituliskan sebelumnya. Seperti telah di bahas sebelumnya, Database Buffer digunakan untuk mempercepat waktu akses data. Data yang tersimpan di Database Buffer akan hilang jika terjadi kegagalan system (baik karena putusnya aliran listrik, System Hang atau sebab-sebab Nonfisik lainnya), oleh karenanya isi Database Buffer harus dituliskan ke DATAFILE di media penyimpanan tetap (Hard Disk). Penulisan Database Buffer ke DATAFILE ditangani oleh proses latar belakang yang bernama Database Writer. Algoritma yang biasa di gunakan untuk penggantian isi Database Buffer adalah Least Recently Used (LRU). Yaitu penulisan isi Database Buffer yang paling terakhir digunakan/diakses ke Hard Disk untuk memberi ruang kepada Database Buffer untuk menyimpan data baru. Penulisan data ke DATAFILE tidak boleh dilakukan sebelum record Log dituliskanke LOG FILE di media penyimpanan tetap. Karena informasi yang terkandung dalam LOG FILE digunakan untuk merekonstruksi keadaan DATAFILE, jika DATAFILE bermasalah. Perbedaan system penulisan DATAFILE dengan LOG FILE adalah isi DATAFILE ini tidak perlu dituliskan saat transaksi di COMMIT, karena catatan-catatan tentang transaksi telah dituliskanke LOG FILE. Dalam kejadian data transaksi yang telah di COMMIT pada Database Buffer hilang (karena kegagalan system), data transaksi yang hilang tersebut masih dapat dapat dipulihkan dengan menelusuri catatannya di LOG FILE. CHECKPOINT Misalkan kita mengubah sebagian jalan cerita dari cerita 1, dimana setelah Arus Listrik padam, tidak terjadi kerusakan pada Hard Disk Server dan DATAFILE tidak hilang, yang hilang hanya Buffer pada RAM. Karena meknisme penulisan DATAFILE dari Buffer RAM ke Hard Disk tidak dilakukan saat transaksi COMMIT, berarti saat Server kembali dinyalakan, DATAFILE “belum” dalam kondisi konsisten. Untuk memulihkan DATAFILE ke kondisi konsisten, maka dilakukan proses Recovery dengan cara menelusuri catatannya di LOG FILE, untuk menentukan operasi mana 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: 1. Proses penelusuran seluruh Log membutuhkan waktu yang lama 2. Kebanyakan transaksi yang harus di Redone telah menuliskan perubahan datanya ke DATAFILE, walaupun mengulangi transaksi tersebut menggunakan tidak berpengaruh (dikarenakan sifat idempoten), pengulangan transaksi tersebut 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 RAM ke File di Hard Disk. Aksi-aksi yang harus dilakukan adalah : Menuliskan semua record Log dari Log Buffer di RAM ke LOG FILE di Hard Disk. Menuliskan semua DATA dari Database Buffer di RAM ke DATAFILE di Hard Disk. Menuliskan record <checkpoint> ke LOG FILE di Hard Disk. Checkpoint dilakukan pada saat tertentu. Biasanya DBMS akan menentukan waktu selang tertentu dalam pengambilan Chekpoint, atau jika terjadi event yang di tentukan oleh system (misalnya pada saat banyaknya transaksi sejak pengambilan Checkpoint terakhir telah bejumlah tertentu). Pengenalan Konsep dan Komponen Database Recovery 8 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
  • 9. KEGAGALAN SYSTEM DAN PROSES RECOVERY Pada kegagalan System, baik disebabkan oleh putusnya aliran listrik ataupun karena aplikasi DBMS harus di restart, isi Buffer pada di RAM hilang, baik Log Buffer maupun Database Buffer. Pada saat system restart dan melakukan proses recovery, system akan membuat dua daftar :  [daftar-undo] yang berisi transaksi-transaksi yang harus di Undo (Dibatalakan-ROLLBACK), dan  [daftar-redo] yang berisi transaksi-transaksi yang harus di Redo (dikerjakan ulang). System membuat kedua daftar tersebut dengan urutan sebagai berikut : pertama-tama kedua daftar tersebut kosong. System menelusuri Log pada LOG FILE di Hard Disk dari <checkpoint> kedepan, dengan rincian urutan : 1. Buat [daftar-redo] dan [daftar-undo] kosong. 2. Baca Log dari <checkpoint>, masukkan seluruh transaksi yang sedang berjalan pada saat <checkpoint> kedalam [daftar-undo]. 3. Mulai telusuri Log kedepan dari <checkpoint> a. jika ditemukan record <Ti, begin> pindahkan transaksi Ti tersebut ke [daftar-undo] b. jika ditemukan record <Ti, commit> atau <Ti, rollback> pindahkan transaksi Ti tersebut ke [daftar-redo] 4. Setelah kedua daftar tersebut di buat, Ulangi lagi penelusuran Log dari <checkpoint> ke depan. Ulangi seluruh transaksi yang ada di [daftar-Redo], sampai akhir dari Log. 5. Setelah seluruh transaksi yang ada di [daftar-redo] telah di ulangi. Telusuri Log dari belakang (dari akhir Log) batalkan seluruh perubahan yang terjadi dari transaksi yang berada di [daftar-undo] sampai ditemukannya record Log <begin> untuk transaksi tersebut. Asumsi penulis Pada kedua referensi :  [SKS 01] A. Silberchatz, H.F. Korth, S. Sudashan, Database System Concept, Forth Edition, McGwar-Hill Companies, New York, 2002  [CJD 01] C.J. Date, An Introduction to Database System, Seventh Edition, Addison-Weasley, Massachusetts, 2000 menggunakan urutan perose Recovery dengan Undo-terlebih dahulu baru kemudian redo. Hal ini dilakukan untuk menghindari inkonsistensi data dikarenakan transaksi yang rollback. Pada kedua sumber referensi tersebut operasi rollback di asumsikan berbeda.  Pada [SKS 01] transaksi yang rollback di masukkan kedalam daftar-undo  Pada [CJD 01] transaksi yang rollback sama sekali tidak masuk dalam daftar manapun dalam proses recovery. Sedangkan pada referensi :  [CBJM 01] Chip Dawes, Bob Bryla, Joseph C. Johnson, Mathew Weishan, OCA:Oracle 10g™ Administration Study Guide, SYBEX, 2005 Digunakan sebaliknya, yaitu operasi Redo terlebih dahulu, baru kemudian Undo. Karena penulis membuat tulisan ini untuk Pelatihan Oracle lab Basis Data Ilmu Komputer Upi, maka, skema recovery Oracle-lah yang digunakan, yaitu operasi Redo terlebih dahulu baru operasi Undo. (sebagai catatan, kebanyakan DBMS modern menggunakan skema recovery Redo-then-undo ini). Salah satu cara yang penulis asumsikan adalah bahwa operasi Rollback transaksi dimasukkan kedalam daftar-redo, sehingga walaupun transaksi tersebut di Rollback (dibatalakan), pada proses recovery, tiap tahap dari transaksi tersebut di kerjakan ulang (termasuk operasi rollback-nya). Tahap pengulangan transaksi yang di rollback ini, walau membuat pekerjaan tambahan dalam proses recovery, namun tetap memastikan data konsisten, dan penulis mengasumsikan, memasukkan transaksi yang rollback kedalam daftar-redo cocok untuk urutan peroses Recovery dengan operasi Redo terlebuh dahulu, baru kemudian Undo. Pengenalan Konsep dan Komponen Database Recovery 9 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
  • 10. SOAL LATIHAN PROSES RECOVERY Kejadian Waktu W1 W2 W3 W4 W5 W6 W7 W8 W9 W10 W11 W12 Catat Log Ke Log Buffer - - - - - - - - - - - - Tulis Log Buffer ke Log File + + + + + Ubah Basis data ke Basis data Buffer - - - - - - - - - - - - Tulis Basis data Buffer ke Datafile + + Keterangan Tabel : Tanda Negatif (-) penulisan ke RAM. Tanda Positif (+) penulisan ke Hard Disk. PENULISAN DATA KE RAM Seperti telah di jelaskan pada bagian-bagian sebelumnya, operasi baca/tulis ke Hard Disk sebisa mungkin di minimalkan untuk mempercepat pengaksesan data. Oleh karena itu (seperti diilustrasikan pada table diatas), seluruh operasi baca/tulis data transaksi baik record Log maupun Data dari Basis data dilakukan di RAM. PENULISAN DATA DI HARD DISK Pada penulisan ke Hard Disk, Ada 4 kejadian penting yang terjadi, yaitu : Transaksi COMMIT , CHECKPOINT, Database Buffer Penuh dan KEGAGALAN SYSTEM. Transaksi COMMIT Dalam kejadian ini, isi dari seluruh Log Buffer di RAM dituliskan ke LOG FILE di Hard Disk. Transaksi T4 dan T6 tidak COMMIT sampai terjadi KEGAGALAN SYSTEM , karenanya record Log <T4,COMMIT> dan <T6,COMMIT> tidak pernah dituliskan ke Hard Disk. CHECKPOINT Dalam kejadian ini, isi dari Log Buffer dan Database Buffer di RAM dituliskan secara paksa ke LOG FILE dan DATAFILE di Hard Disk, dengan tambahan suatu Record khusus <checkpoint> dituliskan ke LOG FILE. Database Buffer Penuh Dalam kejadian ini, isi dari Database Buffer di RAM dituliskanke DATAFILE di Hard Disk. Kegagalan System Dalam kejadian ini, seluruh isi dari Buffer di RAM hilang, baik Log Buffer maupun Database Buffer. Kegagalan system yang dimaksudkan disini adalah kegagalan system yang tidak melibatkan hilangnya DataFile (seperti rusaknya Hard Disk), melainkan kegagalan system yang menyebabkan hilangnya data yang tersimpan di Buffer RAM (karena putusnya aliran listrik, System Hang, dsb). Pengenalan Konsep dan Komponen Database Recovery 10 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
  • 11. Isilah pertanyaan-pertanyaan berikut beserta penjelasannya. Format jawaban pertanyaan-pertanyaan berikut adalah dengan menentukan operasi apa yang harus dilakukan pada saat system melakukan Opearsi Recovery, beserta penjelasan mengenai proses recovery dari transaksi tersebut. PROSES RECOVERY Proses Recovery untuk tiap-tiap transaksi diatas dijelaskan sebagai berikut : TRANSAKSI T 1 Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________ Penjelasan penanganan Transaksi pada proses Recovery : ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ TRANSAKSI T 2 Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________ Penjelasan penanganan Transaksi pada proses Recovery : ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ TRANSAKSI T 3 Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________ Penjelasan penanganan Transaksi pada proses Recovery : ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ Pengenalan Konsep dan Komponen Database Recovery 11 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI
  • 12. TRANSAKSI T 4 Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________ Penjelasan penanganan Transaksi pada proses Recovery : ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ TRANSAKSI T 5 Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________ Penjelasan penanganan Transaksi pada proses Recovery : ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ TRANSAKSI T 6 Operasi yang harus dilakukan saat proses Recovery (Undo/Redo/Tidak ada) : ___________ Penjelasan penanganan Transaksi pada proses Recovery : ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ ______________________________________________________________________________________ Pengenalan Konsep dan Komponen Database Recovery 12 Laboratorium Basis Data : Ilmu Komputer & Pendidikan Ilmu Komputer UPI