Backup & Recovery SystemTeknik Informatika
Adi Nanda Saputra H1D016015
Adam Fadilla H1D016027
Bayu Dwi Yulianto H1D016031
Satria Kries Budiarto H1D016037
Adrian Dwinanda A. H1D016038
M. Aufar Hibatullah H1D016013
Adi Permana Putra H1D016017
Pradana Nirwana H1D016005
Axl Adilla H1D016019
Failure Classification• Transaction failure
• System crash
• Disk failure
Transaction Failure• Logical Error
Transaksi tidak lagi dapat melanjutkan eksekusi normalkarena beberapa kondisi internal, seperti input yangburuk, data tidak ditemukan, kelebihan arus, atau batassumber daya terlampaui
• System Error
Sistem telah memasuki keadaan yang tidak diinginkan(misalnya, deadlock), akibatnya transaksi tidak dapatdilanjutkan dengan eksekusi normal. Transaksi,bagaimanapun, dapat reexecuted di lain waktu.
System Crash• Ada kerusakan perangkat keras, atau bug dalam
perangkat lunak basis data atau sistem operasi, yang menyebabkan hilangnya konten penyimpanan yang mudah menguap, dan membuat proses transaksi terhenti. Konten penyimpanan non-volatile tetap utuh, dan tidak rusak.
• Asumsi bahwa kesalahan perangkat keras dan bug dalam peranti lunak membawa sistem ke data, tetapi tidak dapat merusak isi ulang data, yang dikenal sebagai asumsi gagal-berhenti. Sistem yang dirancang dengan baik dapat melakukan pemeriksaan internal, pada perangkat lunak dan piranti lunak, yang membawa sistem ke ketika ada kesalahan. Oleh karena itu, asumsi gagal-berhenti adalah salah satu yang masuk akal.
Disk Failure• Blok disk kehilangan kontennya sebagai akibat dari
kerusakan kepala atau kegagalan selama operasi transfer data. Pelacakan data pada disk lain, atau cadangan arsip pada media tersier, seperti DVD atau kaset, digunakan untuk memulihkan dari kegagalan.
Storage
PengertianStorage adalah penyimpan, tempat penyimpanan, media yang digunakan untuk menyimpan data yang diolah oleh komputer. Fungsi storage adalah menyimpan data ataufile dalam jangka panjang dan pendek.
Kategori StorageJenis-jenis storage berdasarkan kecepatan relatif dan ketahanan terhadap kegagalan, antara lain :
• Volatile Storage, biasanya informasi yang terdapat pada volatile akan hilang, jika terjadi kerusakan sistem(system crash).co : RAM
• Non-Volatile Storage, biasanya informasi yang terdapatpada non volatile strorage tidak akan hilang jika terjadikerusakan sistem. Co : ROM
• Stable Storage, informasi yang terdapat dalam stable storage tidak pernah hilang. Co Hardisk RAID
Implementasi Stable StorageBerdasarkan definisi, informasi yang berada di dalamstable storage tidak akan pernah hilang. Untukmengimplementasikan storage seperti itu, kita perlumereplikasiinformasi yang dibutuhkan ke banyakperalatan storage (biasanya disk-disk) dengan failure modes yang independen. Kita perlu mengkoordinasikanpenulisan update-update dalam sebuah cara yang menjamin bila terjadi kegagalan selagi meng-updatetidakakan membuat semua kopi yang ada menjadi rusak, dan bila sedang recover darisebuah kegagalan, kita bisamemaksa semua kopi yang ada ke dalam keadaan yang bernilai benar dan konsisten, bahkan bila ada kegagalanlain yang terjadi ketika sedangrecovery. Untukselanjutnya, kita akan membahas bagaimana kita bisamencapaikebutuhan kita.
Implementasi Stable StorageSebuah disk write menyebabkan satu dari tigakemungkinan:
• Successful completion Data disimpan dengan benar di dalam disk.
• Partial failure Kegagalan terjadi di tengah-tengahtransfer, menyebabkan hanya bebe rapasektor yang diisidengan data yang baru, dan sektor yang diisi ketikaterjadikegagalan menjadi rusak.
• Total failure Kegagalan terjadi sebelum disk write dimulai, jadi data yang sebe lumnya ada pada disk masih tetap ada.
Implementasi Stable StorageKita memerlukan, kapan pun sebuah kegagalan terjadiketika sedang menulis ke sebuah blok, system akanmendeteksinya dan memanggil sebuah prosedur recovery untuk me-restore blok tersebut ke sebuah keadaan yang konsisten. Untuk melakukan itu, sistem harusmenangani dua blok physical untuk setiap bloklogical.Sebuah operasi output dieksekusi seperti berikut:
• Tulis informasinya ke blok physical yang pertama.
• Ketika penulisan pertama berhasil, tulis informasi yang sama ke blok physicalyang kedua.
• Operasi dikatakan berhasil hanya jika penulisan keduaberhasil.
Implementasi Stable StoragePada saat recovery dari sebuah kegagalan, setiap pasang blok physi caldiperiksa. Jika keduanya sama dan tidak terdeteksi adanya kesalahan, tetapi berbedadalam isi, maka kita mengganti isi dari blok yang pertama dengan isi dari blok yangkedua. Prosedur recovery se perti ini memastikan bahwa sebuah penulisan ke stable storage akan sukses atau tidak ada perubahan sama sekali.Kita bisa menambah fungsi prosedur ini dengan mudah untuk memboleh kan penggunaan dari kopi yang banyak dari setiap blok pada stable storage. Meski punsejumlah besar kopi semakin mengurangi kemungkinan untuk terjadinya sebuahkegagalan, maka biasanya wajar untuk men simulasi stable storage hanya dengan dua kopi. Data di dalam stable storage dijamin aman kecuali sebuah kegagalan menghancurkan semua kopi yang ada.
Recovery dan Atomicy
Recovery and Atomicity• Ketika system crash, kemungkinan system sedang
memproses beberapa proses transaksi dan membuka file untuk memodifikasi data.
• Transaksi terdiri dari berbagai operasi yang bersifatatomic secara alami. Tetapi berdasarkan ACID propertiDBMS, atomicity dari transaksi semuanya harusdimaintain, yang berarti, semua operasi harusdieksekusi atau tidak sama sekali.
Ketika DBMS pulih dari crash, harus memaintainbeberapa hal sebagai berikut :
• DMBS harus mengecek keadaan dari semua transaksiyang sedang di eksekusi.
• Tranksaksi mungkin sedang berada ditengah-tengahbeberapa operasi; Dalam kasus iniDBMS harusmemastikan atomicity dari transaksi.
• DBMS haru mengecek apaka transaksi bisa di finalisasiatau harus di rolled back.
• Tidak ada transaksi yang meninggalkan DBMS dalamkeadaan inkonsisten.
Ada beberapa teknik untuk membantu DBMS dalammerecovery dan memaintain atomicity dari transaksisalah satunya yaitu :
Memaintain log dari semua proses transaksi yang terjadi, dan menuliskannya kedalam penyimpanan yang stabilsebelum memodifikasi database.
Log RecordStruktur yang paling banyak digunakan untuk merekamperubahan database adalah log.
Log berisi record-record dari aktivitas yang terjadi di database, isi dari log file biasanya terdiri dari :
• Transaction identifier
• Data identifier
• Old value
• New value
How it work• File log disimpan di penyimpanan yang stabil
• Ketika transaksi masuk kedalam sistem dan memulaieksekusi, akan tertulis di log sebagai : <Tn, Start>
• Ketika transaksi merubah nilai dari item X akantertulis di log sebagai : <Tn, X, V1, V2> -> Tn telahmerubah nilai X dari V1 ke V2
• Ketika Transaksi selesai akan tertulis di log sebagaiberikut : <Tn, commit>
Database Modification• Suatu transaksi dikatakan memodifikasi database
ketika ia melakukan update (perubahan) pada sebuahdisk buffer, atau di dalam disk itu sendiri. Perubahanpada bagian khusus (private part) dari memori utamatidak termasuk modifkasi database.
• Terdapat dua teknik dalam modifikasi database; deferred-modification dan immediate-modification.
Teknik Deferred-Modification• Cirinya: suatu transaksi tidak memodifikasi database
sampai transaksi tersebut di-commit.
• Teknik ini mampu menyederhanakan beberapa aspekproses recovery, tapi membuat transaksi-transaksiharus membuat salinan lokal dari semua item data yang telah diperbaru; ketika suatu transaksi membacasebuah item data yang telah diperbarui, ia harusmembaca nilai dari salinan lokalnya.
Teknik Immediate-Modification• Ciri: modifikasi database terjadi ketika transaksi masih
aktif (berjalan).
• Artinya teknik ini memungkinkan untuk melakukanpembaruan (update) dari suatu transaksi yang belumdi-commit ke dalam buffer/disk.
• Pembaruan catatan log harus di tulis sebelum item database ditulis
• Keluaran dari blok-blok yang telah diperbarui kepenyimpanan stabil dapat dilakukan kapan saja, sebelum maupun sesudah commit transaksi denganurutan yang dapat berbeda dengan urutan masuk.
Contoh Immediate-Database-Modification
Concurrency Control and Recovery• Dalam suatu transaksi yang konkuren (bersamaan),
semua transaksi berbagi sebuah disk buffer dan sebuahlog.
sebuah blok buffer dapat memiliki item-item data yang diperbarui oleh satu atau lebih transaksi.
• Jika skema kontrok konkurensi mengijinkan item data X yang telah diperbarui oleh transaksi T1 untukkemudian dimodifikasi oleh transaksi lain T2 sebelumT1 diikat (commit), maka melakukan undo efek T1 akanberefek pada T2. Untuk itu, algoritma pemulihanbiasanya membuat aturan jika suatu item data dimodifikasi oleh suatu transaksi, tidak ada transakasilain yang dapat memodifikasi data tersebut sebelumtransaksi pertama diikat atau dibatalkan.
Concurrency Control and Recovery (cont.)• Aturan tersebut dapat dipastikan dengan menggunakan
kunci eksklusif (exclusive locks) pada item yang diperbarui dan menahan kuncinya sampai transaksiselesai. (disebut penguncian ketat dua fase/ strict two-phase locking)
Transaction Commit • Transaksi telah dilakukan ketika catatan catatan
komitnya, yang merupakan catatan log terakhir daritransaksi, telah di-output ke penyimpanan stabil;
• Pada saat itu semua catatan log sebelumnya telah di-output ke penyimpanan yang stabil. Dengan demikian, adacukup informasi dalam log untuk memastikan bahwabahkan jika ada sistem crash, pembaruan transaksi dapatdiatur ulang.
• Jika sistem crash terjadi sebelum log record <T i commit> adalah output ke penyimpanan stabil, transaksi T i akandibatalkan. Maka, output dari blok yang berisi catatan log komit adalah aksi atom tunggal yang menghasilkantransaksi Mendapatkan komitmen.
• Dengan sebagian besar teknik pemulihan berbasis log, blokyang berisi item data yang dimodifikasi oleh transaksitidak harus di-output ke penyimpanan yang stabil ketikatransaksi dilakukan, tetapi dapat menjadi keluaranbeberapa waktu kemudian.
Undo• Undo dari sebuah operasi <𝑇𝑖, 𝑋, 𝑉1, 𝑉2> menulis nilai
lama dari 𝑉1 ke 𝑋.
• Undo (𝑇𝑖) mengembalikan nilai dari data yang ter-update oleh 𝑇𝑖 ke nilai lama mereka, berjalan kebelakang dari log record terakhir untuk 𝑇𝑖.
Setiap kali sebuah data 𝑋 dikembalikan ke nilai lamanya 𝑉, sebuah log record spesial <𝑇𝑖, 𝑋, 𝑉> ditambahkan.
Ketika transaksi undo selesai, sebuah log record ditambahkan.
Redo• Redo dari sebuah operasi <𝑇𝑖, 𝑋, 𝑉1, 𝑉2> menulis nilai
baru dari 𝑉2 ke 𝑋.
• Redo (𝑇𝑖) men-set nilai dari data yang ter-update oleh 𝑇𝑖 ke nilai baru mereka, berjalan ke depan dari log record pertama untuk 𝑇𝑖 .
Tidak ada log pada kasus ini.
Recovery dari Kegagalan• Ketika Recovering setelah kegagalan:
Transaksi 𝑇𝑖 butuh di undo jika log:
Memuat record <𝑇𝑖 𝑠𝑡𝑎𝑟𝑡>, tapi
Tidak memuat record <𝑇𝑖 𝑐𝑜𝑚𝑚𝑖𝑡>atau<𝑇𝑖 𝑎𝑏𝑜𝑟𝑡>.
Transaksi 𝑇𝑖 butuh di redo jika log:
Memuat record <𝑇𝑖 𝑠𝑡𝑎𝑟𝑡>, dan
memuat record <𝑇𝑖 𝑐𝑜𝑚𝑚𝑖𝑡>atau<𝑇𝑖 𝑎𝑏𝑜𝑟𝑡>.
Catatan• Jika transaksi 𝑇𝑖 di-undo sebelumnya dan record <𝑇𝑖𝑎𝑏𝑜𝑟𝑡> sudah tercatat ke log, dan kemudian kegagalanterjadi, saat recovery dari kegagalan maka 𝑇𝑖 di redo.
Redo seperti ini disebut juga mengulang sejarah ( repeating history).
Menyederhanakan proses recovery.
CheckpointKetika terjadi kerusakan sistem, kita harus melihat log untuk menentukan penyebab kerusakan yang perlu di-undo atau redo.
Pada prinsipnya, perlu melihat seluruh log untuk menentukan informasi ini.
Proses pencarian dalam seluruh log merupakan proses yang redudan.
Checkpoint (cont.)Checkpoint adalah tempat semua transaksi yang dilakukan ditulis ke log. Administrator basis data menentukan frekuensi checkpoint berdasarkan volume transaksi. Checkpoint yang terlalu sering dapatmemengaruhi kinerja. Checkpoint yang terlalu seringakan menyebabkan waktu pemulihan yang lebih lama karena lebih banyak log yang harus diterapkan.
Checkpoint (cont.)Alur prosedur recovery dengan melakukan checkpoint secara berkala :
1. Output semua catatan log yang saat ini berada di memori utama ke penyimpanan yang stabil.
2. Output semua blok buffer yang dimodifikasi ke disk.
3. Menulis catatan log <checkpoint L> ke penyimpananyang stabil di mana L adalah daftar semua transaksiyang aktif pada saat checkpoint.
Semua pembaruan dihentikan saat melakukan checkpoint
Checkpoint (cont.)Selama recovery hanya perlu mempertimbangkan transaksiTi yang dimulai sebelum checkpoint, dan transaksi yang dimulai setelah Ti.
1. Pindai log untuk menemukan catatan <Checkpoint L> terbaru.
Hanya transaksi yang ada di L atau dimulai setelah checkpoint yang harus undo atau redo.
Transaksi yang dilakukan atau dibatalkan sebelum checkpoint sudah memiliki semua output pembaruan dalam penyimpananyang stabil.
Beberapa bagian awal dari log mungkin diperlukan untukmembatalkan operasi.
1. Lanjutkan pemindaian hingga catatan <Ti start> ditemukan setiap transaksi Ti dalam L.
Bagian-bagian dari log sebelum catatan <Ti start> tidakdiperlukan dalam recovery, dan dapat dihapus kapan pun diinginkan.
Contoh Checkpoint
Backup dan Recovery
BackupKerusakan terhadap disk (yang merupakan jenis media penyimpanan permanent yang paling umum), kerusakandata karena aktivitas pemakai ataupun kerusakan data oleh aplikasi eksternal, dapat diantisipasi denganmelakukan operasi backup secara periodik. Menjalankanoperasi backup secara rutin merupakan tugaspengelolaan basis data yang penting.
Disamping menunjukkan salah satu jenis operasi yang penting dalam sebuah sistem basis data, istilah backup dapat pula merujuk pada objek dari operasi tersebut.
Sebagai objek, backup adalah salinan dari data. Data disini, yaitu:
• Tidak hanya meliputi data pada level pemakaiakhir/enduser.
• Tetapi juga bisa mencakup bagian-bagian penting daribasis data secara keseluruhan, seperti file-file kontrol(meta data) ataupun file-file log.
Ditinjau dari objeknya, backup dapat dikelompokkankedalam:
• Backup Fisik (Physical Backup)
• Backup Lojik (Logical Backup)
Backup FisikBackup Fisik (Physical Backup) adalah salinan fisik file-file basis data seperti tabel-tabel data, file kontrol, file log. Backup fisik dapat dihasilkan dari pengeksekusianprogram utilitas yang disediakan oleh DBMS yang bersangkutan ataupun program utilitas yang disediakanoleh sistem operasi (Operating System) dimana DBMS ituberada.
Backup LojikBackup Lojik (Logical Backup), backup lojik kitadapatkan dari pembentukan file-file/objek yang berisiperintah (bisa berupa teks bahasa SQL ataupun perintahbiner) yang jika dieksekusi dapat mengembalikan basis data ke kondisi semula. Backup lojik hanya dapatdihasilkan dari pengeksekusian program utilitas khususyang disediakan oleh DBMS yang bersangkutan.
Berdasarkan waktu pelaksanaan atau strateginya, ada 2 jenis operasi backup yang dapat kita pilih, yaitu:
• Backup Statis
• Backup Dinamis
Backup StatisBackup Statis, di mana backup dilakukan dengan lebih dulu menonaktifkan basis data secara keseluruhan.
Backup DinamisBackup Dinamis, di mana backup dilakukan tanpa penonaktifan basis data (sehingga user tetap bisa bekerja).
Remote Backup System
PenjelasanMenyediakan tingkat ketersediaan yang tinggi, memungkinkan transfer memproses tindakan untukmelanjutkan bahkan jika situs utama dihancurkan oleh api, banjir, atau gempa bumi. Data dan catatan log darisitus utama terus-menerus sekutu dicadangkan ke situs cadangan jarak jauh. Jika situs utama gagal, remote situs cadangan mengambil alih pemrosesan transaksi, setelahmenjalankan pemulihan tertentu tindakan. . Situs cadangan jarak jauh kadang-kadang juga disebut situs sekunder. Situs remote harus tetap disinkronisasi dengansitus utama, karena pembaruan dilakukan di utama. Kami mencapai sinkronisasi dengan mengirim semuacatatan log dari situs utama ke situs cadangan jarak jauh.
Kerja Sistem
Pejelasan Kerja Sistem• Ketika situs utama gagal, situs cadangan jauh mengambil
alih pemrosesan.
• Namun, pertama, ia melakukan pemulihan, menggunakansalinannya (yang mungkin sudah ketinggalan zaman) data dari primer, dan catatan log yang diterima dari primer.
• Sebenarnya, situs cadangan jauh melakukan tindakanpemulihan yang seharusnya dilakukan di situs utamaketika yang terakhir pulih.
• Standar pemulihan algo-rithms, dengan sedikit modifikasi, dapat digunakan untuk pemulihan di backup jarak jauhsitus. Setelah pemulihan dilakukan, situs cadangan jauhmulai diproses transaksi.
• Ketersediaan sangat meningkat melalui sistem satu situs, karena sistem
• dapat memulihkan bahkan jika semua data di situs utamahilang.
Pencegahan Masalah• Deteksi kegagalan
• Transfer kontrol
• Waktu untuk berkomitmen
Summary
Kesimpulan• Kegagalan Sistem Disebabkan oleh Disk Rusak , Mati daya
, Software Error , kebakaran pada ruang mesin , sabotase
• Bagian penting dari database adalah Skema Recovery & Ketersediaan tinggi
• Klasifikasi kegagalan : Kegagalan Transaksi , Sistem Error , Kegagalan Disk
• Kategori Penyimpanan : Volatile , nonvolatile , Stabil
• Untuk Mencapai Recovery dan Atomicity : Log Record , Database Modification , Concurency control and recovery , Transaksi Commit , Redo Undo Transaction , Chekpoint
• masalah Remote backup sistem : deteksi kegagalan , Transfer of Control , Time to Recover , Time to Commit