Backup & Recovery Sistem Basis Data
Penyebab kegagalan operasi pada sistem komputer Aliran listrik terputus Mengakibatkan hilangnya informasi di memory utama & register Kesalahan operator Operator melakukan kesalahan operasi yg tidak disengaja Kesalahan Software Mengakibatkan hasil pengolahan menjadi tidak benar, basis data menjadi tidak konsisten Disk rusak mengakibatkan rusaknya basis data dan hilangnya informasi
Recovery Merupakan upaya DBMS untuk mengembalikan kondisi basis data seperti semula, ketika terjadi kerusakan. Operasi Recovery Otomatis Jika kerusakan tidak terjadi pada media disk Operasi Recovery Manual Jika kerusakan terjadi pada media disk , dengan diawali proses restore dari salinan basis data(hasil backup) yang kemudian diikuti proses perbaikan basis data agar kembali ke kondisi semula
Recovery Recovery hanya diterapkan sebuah transaksi yang berada dalam status batal (Aborted) Pada proses recovery ada 2 pilihan yang dapat dikerjakan oleh sistem. redo untuk kasus kesalahan/kerusakan sistem Undo untuk kasus kesalahan logika dalam program
Jenis kerusakan pada basis data Kegagalan transaksi penyebab: Kesalahan logika sistem tidak dapat melanjutkan eksekusi normalnya karena adanya kondisi internal tertentu. Misl: (data yg dimasukkan salah,data tidak tersedia,nilai overflow,bugs,memory penuh/habis) Kesalahan sistem Sistem telah memasuki kondisi yang tidak diharapkan(misl: deadlock) akibat sistem bekerja tidak normal Kerusakan Sistem Hardware macet(hang) yang mengakibatkan informasi pada media sementara hilang Kegagalan/kerusakan disk Terdapat bad sector/disk macet pada saat berlangsungnya operasi I/O ke disk
Jenis media penyimpanan Media penyimpanan sementara(volatile storage) Informasi hilang jika aliran listrik mati namun memiliki kelebihan pada kecepatan aksesnya tinggi. Contoh RAM,Cache,register Media penyimpanan permanen(non-volatile storage) Tape,disk Media penyimpanan stabil (stable storage) me-replikasi data/informasi dalam berbagai media penyimpanan permanen sekaligus.
Operasi dasar ke media penyimpanan Perpindahan blok data antara memory dan disk dilakukan dengan menggunakan dua operasi dasar berikut: Input(A) Output(B)
Transaksi Transaksi Ti berinteraksi dengan sistem basis data dalam melakukan transfer data ke buffer sistem dengan operasi sbb: Read(x) memberi harga X dari basis data ke variabel lokal di memory xi Jika Bx tidak ada di memory utama, lakukan input(Bx) Isikan harga X yang ada di blok buffer ke variabel lokal xi Write(x) Memberi harga dari variabel xi ke satuan data xi di blok buffer Isikan harga dari variabel lokal xi ke satuan data X yang ada di blok buffer
Transaksi Merupakan operasi-operasi terhadap basis data yang dikelompokkan ke dalam unit-unit operasi atomik
Contoh transaksi transfer dana get vTransfer read(A) A A – vTransfer write(A) read(B) B B + vTransfer write(B) display A display B
Mekanisme recovery Dengan asumsi disk tidak mengalami kerusakan, maka ada 3 pilihan skema untuk menjalankan recovery secara otomatis begitu kerusakan/kegagalan sistem terjadi File log dengan penundaan pengubahan(Incremental log with deferred update) File log dengan pengubahan langsung (Incremental log with immediate update) Page bayangan/Shadow Paging
Recovery berbasis File Log File log digunakan untuk merekam terjadinya perubahan-perubahan terhadap basis data. Record log untuk operasi penulisan basis data, memiliki atribut diantaranya: Pengidentifikasi transaksi (Transaction Identifier) Nilai unik untuk identifikasi transaksi yang menjalankan operasi write Pengidentifikasi data(Data Item Identifier) nilai unik identifikasi satuan data yang ditulis dan menunjukkan lokasi fisik disk. Nilai lama nilai sebelum operasi write Nilai baru nilai setelah operasi write Record log memulai transaksi <Ti start> Record log menjalankan operasi write <Ti,Xj,V1,V2> Record log menunjukkan transaksi direkam secara sempurna <Ti commit> Record log menunjukkan transaksi telah dibatalkan <Ti abort>
File log dengan penundaan pengubahan(Incremental log with deferred update) Merekam semua perubahan basis data dalam file log, tetapi menunda eksekusi semua operasi (write) dalam sebuah transaksi hingga transaksi commit. T0: Read(A) A A – 100000 Write(A) Read(B) B B+100000 Write(B) T1: Read(C) C C -2000000 Write(C) Log Basis Data <T0 start> <T0,A, 900000> <T0,B,2100000> <T0 commit> A=900000 B=2100000 <T1 start> <T1,C,3000000> <T1 commit> C=3000000 Recovery - Redo
File log dengan pengubahan langsung (Incremental log with immediate update) Membuat perubahan ke basis data di dalam transaksi secara langsung meskipun transaksi masih berlangsung. T0: Read(A) A A – 100000 Write(A) Read(B) B B+100000 Write(B) T1: Read(C) C C -2000000 Write(C) Log Basis Data <T0 start> <T0,A, 1000000,900000> <T0,B, 2000000,2100000> A=900000 B=2100000 <T0 commit> <T1 start> <T1,C,5000000,3000000> C=3000000 <T1 commit> Recovery : Undo: jika dalam file log terdapat <Ti start> tapi tidak ada <Ti commit> Redo: jika dalam file log terdapat <Ti start> dan <Ti commit> Operasi undo didahulukan
Checkpoint Untuk mengurangi beban kerja/waktu (overhead) Dengan adanya checkpoint dalam file log memungkinkan sistem menjalankan proses recovery dengan lebih efisien
Page bayangan/Shadow Paging