DATABASE
(CCS120)
MODUL SESI XI
DISUSUN OLEH
2020
BAB XI
Backup dan Recovery
Tujuan
Teori
Seperti yang anda ketahui, alat elektronik atau mekanis akan berpotensi mengalami
kerusakan atau gagal operasi. Sama halnya dengan database, suatu ketika mungkin
akan mengalami kerusakan yang sifatnya berat maupun ringan.
Beberapa kerusakan atau kesalahan biasanya disebabkan oleh beberapa hal, yaitu:
a. Kesalahan user
Biasanya kesalahan ini diakibatkan oleh user belum banyak
mengetahui prinsip atau aturan dari sistem yang akan digunakan.
User melakukan kesalahan operasi yang tidak sengaja
Misalnya:
Kesalahan dalam pemindahan table dan lainnya.
b. Kerusakan statemen
Kerusakan yang diakibatkan oleh kesalahan logika saat memberikan perintah
dalam program.
Contoh:
Kesalahan logika dalam membangun database (oracle).
Misalnya yang sudah Anda ketahui, sebuah table dalam database tata
ruangnya dialokasikan secara khusus, (yaitu dalam parameter
MAXEXTENTS saat menggunakan perintah CREATE TABLE), dan
1
semua alokasi tersebut sudah penuh dengan data, dan Anda
kemudian memberikan perintah INSERT untuk menyisipkan baris.
Karena tidak ada ruang yang kosong, maka hal ini akan menyebabkan
suatu kesalahan.
Jika terjadi kesalahan ini, program Oracle atau sistem operasi akan
menampilkan pesan atau kode atas kesalahan yang terjadi. Biasanya
kesalahan ini tidak akan menimbulkan akibat yang serius, karena
Oracle secara otomatis akan mengatasi kesalahan ini dengan
mengembalikan kejadian (rolling back) jika ada dalam statement, dan
mengembalikan kontrol ke user atau program user
c. Kealahan proses
Kesalahan yang terjadi pada user, server, atau proses background
database.
Misalnya:
Sebuah connect atau proses disconnect yang tidak sempurna
d. Kesalahan jaringan
Kesalahan yang terjadi saat melakukan komunikasi jaringan. Jaringan rusak
saat melakukan pendistribusian database.
e. Kerusakan database
Kerusakan yang berasal dari kerusakan hardware, atau masalah pada
software.
f. Kerusakan disk
Mengakibatkan hilangnya informasi atas rusaknya database yang ada dalam
disk.
g. Aliran listrik putus
Mengakibatkan hilangnya informasi yang ada pada memori utama dan
register
h. Kesalahan perangkat lunak
Mengakibatkan laporan akhir tidak benar, informasi yang diberikan kepada
user menjadi salah atau tidak konsistennya informasi yang dihasilkan
database.
2
Jenis Kerusakan dan Jenis Media Penyimpanan
Berikut adalah beberapa jenis kerusakan yang terjadi pada database, yaitu:
a. Kegagalan transaksi (Transaction Failure)
Ada beberapa jenis kegagalan yang dapat menyebabkan sebuah transaksi
gagal:
Kesalahan logika
Dimana sistem/program tidak dapat melanjutkan eksekusi normalnya
karena adanya kondisi internal tertentu seperti:
o Masukan yang salah
o Data tidak tersedia
o Nilai data di luar batas domain yang diperbolehkan (overflow)
o Logika program yang tidak tepat (bugs)
o Batas sumber daya sistem (resource) habis
Kesalahan sistem
Dimana sistem/program telah memasuki kondisi yang tidak diharapkan
(deadlock) sebagai hasil dari tidak tereksekusinya program/sistem
secara normal.
b. Kerusakan sistem (System Crash)
Hardware hang, menyebabkan isi media penyimpanan sementara (volatile
storage) hilang.
c. Kegagalan/Kerusakan Disk (Disk Failure)
Terjadinya bad sector atau disk macet pada saat berlangsungnya operasi
input dan output ke disk.
3
3. Media penyimpanan stabil (stable storage)
Informasi dalam media penyimpanan ini tidak pernah hilang. Caranya
dengan me-replikasi data dalam beberapa media penyimpanan permanen
sekaligus.
Perpindahan blok data dari/ke memori ke/dari disk dilakukan dengan menggunakan
dua buah operasi dasar berikut ini:
1. Input
Yang akan mentransfer blok fisik di disk dimana A berada ke memori utama
2. Output
Yang akan mentransfer blok buffer dimemori utama dimana B erada ke disk.
Dan setiap database minimal memiliki dua file redo log. File redo log ini ada dua
macam, yaitu:
Redo log on line, dan
Redo log offline (archive redo log), yaitu file redo log yang tidak dipergunakan
saat instance berjalan, tetapi dipakai saat recovery database.
5
Skema Mekanisme Recovery
Dengan asumsi ruang disk yang dialokasikan untuk basis data tidak mengalami
kerusakan, maka ada 3 pilihan skema untuk menjalankan mekanisme recovery
secara otomatis begitu kerusakan atau kegagalan sistem telah terjadi. Ketiga skema
pilihan itu adalah:
1. File Log dengan Penundaan Pengubahan (Incremental Log With Defered
Update)
2. File Log dengan Pengubahan langsung (Incremental Log With Immediate
Updates)
3. Page Bayangan (Shadow Paging), yang memerlukan akses ke disk yang
lebih sedikit.
6
Jika sebuah transaksi T telah mengubah sebuah item data Q, tidak boleh ada
transaksi lain yang boleh mengubah item data yang sama hingga T telah di-
commit ataupun di-roll back. Kita dapat menjamin hal ini dengan
memanfaatkan Loking Protokol Dua Fase yang Ketat, yang menerapkan
penguncian dengan mode exclusive hingga akhir transaksi.
b. Restart recovery
Pada saat sistem melakukan pemulihan data, ia membentuk dua buah daftar.
Yang pertama adalah daftar undo (undo-list) yang terdiri atas transaksi-
transaksi yang harus dikenai operasi undo dan daftar redo (redo-list) yang
berisi transaksi-transaksi yang harus dikenai operasi redo.
Kedua daftar ini dibentuk untuk proses recovery sebagai berikut. Mula-mula
kedua daftar tersebut kosong. Kita melakukan penelusuran mundur terhadap
file log, memeriksa record hingga ditemukannya <checkpoint>:
Untuk setiap record yang ditemukan dalam bentuk <T i commit>, kita
tambahkan Ti dalam redo-list.
Untuk setiap record yang ditemukan dalam bentuk <Ti start>, jika Ti
tidak ada dalam redo-list, kita tambahkan Ti dalam undo-list.
Pada saat semua record dimaksud dalam file log telah diperiksa, kita periksa isi list L
dalam record checkpoint. Untuk setiap transaksi Ti dalam L, jika Ti tidak ada dalam
redo-list maka kita tambahkan Ti dalam undo-list. Begitu kedua daftar tersebut telah
terbentuk, maka proses recovery akan dilakukan dengan langkah-langkah berikut ini:
1. Ulangi penelusuran mundur file log dari record terakhir, dan jalankan operasi
undo untuk setiap record dalam file logyang memiliki transaksi T i pada undo-
list. Record-record transaksi dalam redo-list diabaikan dalam fase ini.
Penelusuran dihentikan ketika record <T i start> ditemukan untuk setiap
transaksi Ti dalam undo-list.
2. Carilah record <checkpoint L> terakhir dalam file log. Perhatikan bahwa
langkah ini dapat melibatkan penelusuran maju, jika record checkpoint telah
dilewati dalam langkah 1.
7
3. Lakukan penelusuran maju pada file log dari record <checkpoint L> terakhir
dan jalankan operasi redo untuk setiap record dalam file log yang dimiliki
transaksi Ti yang da di dalam redo-list. Pada fase ini, abaikan semua record
dari transaksi yang ada dalam undo-list.
Setelah semua transaksi dalam undo-list telah dikenai operasi undo, selanjutnya
transaksi-transaksi dalam redo-list juga dikenai denagn operasi redo.
Operasi Backup
Kerusakan terhadap disk (yang merupakan jenis media penyimpanan permanent
yang paling umum), kerusakan data karena aktivitas pemakai ataupun kerusakan
data oleh aplikasi eksternal, dapat diantisipasi dengan melakukan operasi backup
secara periodik. Menjalankan operasi backup secara rutin merupakan tugas
pengelolaan basis data yang penting.
Berdasarkan waktu pelaksanaan atau strateginya, ada 2 jenis operasi backup yang
dapat kita pilih, yaitu:
Backup Statis, di mana backup dilakukan dengan lebih dulu menonaktifkan
basis data secara keseluruhan.
Backup Dinamis, di mana backup dilakukan tanpa penonaktifan basis data
(sehingga user tetap bisa bekerja).
Sebuah alternative lain di samping penerapan basis data terdistribusi di atas adalah
dengan menjalankan pengolahan transaksi pada sebuah situs yang disebut sebagai
situs utama/primer, tetapi dengan memiliki sebuah situs untuk backup jarak jauh
(remote backup), di mana semua data dari situs utama direplikasi.
Situs remote backup kadang-kadang disebut juga sebagai situs sekunder. Situs
remote backup tersebut harus terus di-sinkronisasi dengan situs primer, begitu
terjadi perubahan pada situs primer. Situs remote backup secaqra fisik harus
terpisah dari situs primer.
8
primer network backup
log record
Beberapa isu yang perlu kita perhatikan pada saat merancang sebuah sistem
dengan remote backup adalah:
Pendeteksian Kerusakan
Pemindahan Kontrol
Waktu untuk Pemulihan
Waktu untuk Commit
Checkpoint
Titik sinkronisasi antara database dan file log transaksi.
Semua buffer ditulis secara paksa ke penyimpanan sekunder.
Checkpoint dijadwalkan pada interval yang telah ditentukan dan melibatkan operasi
berikut:
Menulis semua catatan log di memori utama ke penyimpanan sekunder;
Menulis blok yang dimodifikasi dalam buffer database ke penyimpanan
sekunder;
Menulis catatan pos pemeriksaan ke file log. Catatan ini berisi pengenal dari
semua transaksi yang aktif pada saat checkpoint.
Ketika kerusakan sistem terjadi, seluruh isi log file harus diperiksa (untuk proses
pencarian) untuk menentukan transaksi mana yang harus dikerjakan ulang dan
mana yang dikembalikan ke keadaan semula.
9
Ada dua kesulitan dalam proses pencarian, yaitu:
1. Proses pencarian memakan waktu
2. Sebagian besar transaksi yang perlu diulangi sudah menuliskan
perubahannya ke database, sehingga tidak benar-benar perlu diulangi lagi.
Membackup Database
Proses backup ini ada dua tipe, yaitu:
Full Backup
Yaitu proses backup database yang mencakup semua filenya. File tersebut
adalah file data, control, dan redo log-nya. Jika Anda ingin melakukan backup
dengan cara ini, maka database harus dishutdown terlebih dulu. Dengan
demikian Anda tidak dapat mengaksesnya terlebih dulu. Hal initentu akan
menjadi maslaah jika sistem database Anda ingin diakses selama 24 jam 7
hari secara penuh. Untuk mengatasi hal ini Anda bisa menggunakan cara
yang kedua (Partial Backup)
Partial Backup
Masing-masing file database dibackup sendiri-sendiri (tidak pada waktu yang
sama).
Database Recovery
Proses pemulihan database ke keadaan yang benar jika terjadi kegagalan.
Perlunya Recovery
Penyimpanan data umumnya mencakup empat jenis media dengan tingkat
keandalan yang semakin meningkat: memori utama, disk magnetis, pita magnetik,
dan disk optik.
10
Memori utama adalah penyimpanan volatile yang biasanya tidak bertahan
saat sistem crash.
Disk magnetik menyediakan penyimpanan nonvolatile online. Dibandingkan
dengan memori utama, disk lebih dapat diandalkan dan jauh lebih murah,
tetapi lebih lambat tiga hingga empat kali lipat.
Pita magnetik adalah media penyimpanan nonvolatile offline, yang jauh lebih
dapat diandalkan daripada disk dan cukup murah, tetapi lebih lambat, hanya
menyediakan akses berurutan.
Disk optik lebih dapat diandalkan daripada tape, umumnya lebih murah, lebih
cepat, dan menyediakan akses acak. Memori utama juga disebut sebagai
penyimpanan primer dan disk dan tape sebagai penyimpanan sekunder.
Penyimpanan stabil mewakili informasi yang telah direplikasi di beberapa
media penyimpanan nonvolatile (biasanya disk) dengan mode kegagalan
independen.
Ada banyak jenis kegagalan yang dapat memengaruhi pemrosesan basis data, yang
masing-masing harus ditangani dengan cara yang berbeda. Beberapa kegagalan
hanya mempengaruhi memori utama, sementara yang lain melibatkan penyimpanan
nonvolatile (sekunder).
11
Transaksi dan Recovery
Untuk mengimplementasikan operasi baca, DBMS melakukan langkah-langkah
berikut:
Temukan alamat dari blok disk yang berisi catatan dengan nilai kunci utama x;
Mentransfer blok disk ke buffer database di memori utama;
Menyalin data gaji dari buffer database ke gaji variabel. Untuk operasi tulis,
dbms melakukan langkah-langkah berikut:
Temukan alamat dari blok disk yang berisi catatan dengan nilai kunci utama x;
Mentransfer blok disk ke buffer database di memori utama;
Menyalin data gaji dari gaji variabel ke dalam buffer database;
Menulis buffer database kembali ke disk
Buffer Management
Salah satu pendekatan buffer management adalah mengaitkan dua variabel dengan
informasi manajemen untuk setiap buffer database: pinCount dan dirty, yang
awalnya disetel ke nol untuk setiap buffer database. Ketika sebuah halaman diminta
dari disk, pengelola buffer akan memeriksa untuk melihat apakah usia sudah ada di
salah satu buffer database.
Fasilitas Recovery
DBMS harus menyediakan fasilitas berikut untuk membantu pemulihan:
Mekanisme backup, yang membuat salinan backup database secara
berkala;
Fasilitas logging, yang melacak keadaan transaksi saat ini dan perubahan
database;
Fasilitas pos pemeriksaan, yang memungkinkan pembaruan basis data yang
sedang berlangsung menjadi permanen;
Manajer pemulihan, yang memungkinkan sistem untuk memulihkan
database ke kondisi yang konsisten setelah terjadi kegagalan.
Teknik Recovery
Prosedur pemulihan tertentu yang akan digunakan tergantung pada tingkat
kerusakan yang terjadi pada database.
14
Latihan
15