Anda di halaman 1dari 16

MODUL

DATABASE

(CCS120)

MODUL SESI XI

SQL: DATA MANIPULATION

DISUSUN OLEH

NOVIANDI, S.Kom, M.Kom

UNIVERSITAS ESA UNGGUL

2020
BAB XI
Backup dan Recovery

Tujuan

1. Jenis-jenis kerusakan database dan dampaknya


2. Pilihan-pilihan skema recovery otomatis, baik terhadap system basis data
sederhana pemakai tunggal maupun terhadap system database yang
konkuren dengan banyak pemakai
3. Operasi backup untuk mengantisipasi kerusakan/kehilangan data pada media
penyimpanan permanent (disk)

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.

Berikut jenis media penyimpanan yang dibedakan berdasarkan kecepatan, kapasitas


dan ketahanannya dalam kerusakan:
1. Media penyimpanan sementara (volatile storage)
Informasi yang ada dimedia penyimpanan ini hanya ada selama catuan listrik
mengalir.
2. Media penyimpanan permanen (Non-volatile storage)
Informasi yang ada dimedia penyimpanan ini tetap ada walaupun catuan
listrik tidak mengalir lagi.

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.

Mekanisme recovery memiliki dua bagian utama, yaitu:


1. Aksi-aksi yang ditempuh selama transaksi berjalan normal untuk menjamin
adanya informasi yang memadai yang kelak dibutuhkan oleh mekanisme
recovery.
2. Aksi-aksi yang ditempuh setelah terjadinya kerusakan/ kegagalan sistem
yang dilakukan untuk memulihkan isi basis data ke suatu keadaan yang
menjamin konsistensi basis data, keatomikan, dan ketahanan transaksi.

Struktur yang digunakan untuk recovery


Jika Anda ingin menggunakan recovery database, maka Anda tidak akan lepas
dengan struktur database. Struktur ini dirancang secara khusus untuk menunjang
fasilitas ini. Database Oracle sebenarnya memiliki struktur sebagai berikut:
 File data
Menyimpan semua data yang ada dalam database. Objek skema seperti
tabel, index, dan sebagainya secara fisik tersimpan dalam file ini.
 File Control
Menyimpan struktur fisik dari database seperti nama database, nama dan
lokasi file data dalam redo log dan sebagainya. File kontrol ini berrindak
seperti header dan database.Tanpa file ini, Anda tidak pernah bisa melakukan
startup database.
 File Redo log
Menyimpan semua perubahan yang terjadi pada database. File inilah yang
nantinya digunakan dalam proses recovery.

Operasi dasar ke media penyimpanan


 Ruang penyimpanan dalam disk dipilah-pilah dalam satuan-satuan
penyimpanan yang sama besarnya yang disebut dengan blok.
 Blok tersebut menunjukkan satuan pentransferan data dari dan kedisk, dan
berisi banyak satuan data.
4
 Karena digunakan untuk menampung data, maka disebut juga dengan blok
data.
 Transaksi yang berjalan di dalam sebuah sistem database akan memasukkan
data/informasi dari disk ke dalam memori utama dan kemudian mengeluarkan
kembali data/informasi tersebut kedalam disk.
 Operasi input dan output dilakukan dalam satuan blok data.
 Blok data yang bersifat permanen disebut dengan blok fisik (physical blocks)
 Block data dalam memori utama dan bersifat temporer disebut blok buffer
(buffer blocks)

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.

Mengenal Mode Database


Sebelum Anda melakukan backup dan recovery terhadap database Oracle, akan
lebih baik jika Anda mengetahui terlebih dulu mode dari database Oracle ini. Perlu
Anda ketahui sebelumnya bahwa mode kerja database ini sangat dipengaruhi oleh
cara pemakaian dan cara penyimpanan file redo lognya. Seperti yang sudah kami
jelaskan di depan, file redo log ini mencatat setiap perubahan pada database.
Perubahan ini biasanya terjadi jika dilakukan proses insert, update, delete, create,
alter atau proses drop terhadap database yang bersangkutan.
File redo log ini berisi:
 Before image, yaitu data-data sebelum dilakukan perubahan, dan
 After image, yaitu data-data sesudah dilakukan perubahan.

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.

Recovery berbasis file log


Sebuah record log untuk menunjukkan sebuah operasi penulisan ke database, akan
memiliki field-field seperti berikut ini:
a. Pengidentifikasi transaksi
Merupakan nilai unik untuk identifikasi transaksi yang menjalankan operasi
write.
b. Pengidentifikasi data
Merupakan nilai unik untuk identifikasi satuan data yang ditulis. Umumnya
nilai ini juga menunjukkan lokasi fisik disk dari satuan data tersebut
c. Nilai lama
Merupakan nilai satuan data sebelum operasi write dijalankan.
d. Nilai baru
Merupakan nilai satuan data setelah operasi write dijalankan.

Recovery untuk Transaksi Konkuren


a. Interaksi dengan pengendalian konkurensi
Skema recovery ini akan banyak tergantung pada skema pengendalian
konkurensi yang digunakan. Untuk menjalankan proses roll back terhadap
transaksi yang gagal/ batal,kita harus membatalkan perubahan yang telah
dilakukan oleh transaksi tersebut.

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).

Backup Jarak Jauh (Remote Backup System)

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

Gambar 2. Arsitektur Remote Backup

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.

Untuk mengurangi beban kerja/waktu tambahan (overhead) ini, digunakan konsep


checkpoint. Dengan adanya checkpoint, disamping perekaman kedalam file log,
aksi yang juga harus dikerjakan adalah:
a. Menuliskan semua record log, aksi yang sedang berada di memori utama ke
media penyimpanan stabil
b. Menuliskan semua blok buffer yang berubah ke disk
c. Menuliskan record <checkpoint> di file log ke media penyimpanan stabil

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).

Diantara penyebab kegagalan adalah:


 Sistem crash karena kesalahan perangkat keras atau perangkat lunak, yang
mengakibatkan hilangnya memori utama;
 Kegagalan media, seperti head crash atau media tidak terbaca, mengakibatkan
hilangnya bagian dari penyimpanan sekunder;
 Kesalahan perangkat lunak aplikasi, seperti kesalahan logika dalam program
yang mengakses database, yang menyebabkan satu atau lebih transaksi
gagal;
 Bencana fisik alam, seperti kebakaran, banjir, gempa bumi, atau mati listrik;
 Kecerobohan atau penghancuran data atau fasilitas yang tidak disengaja oleh
operator atau pengguna;
 Sabotase, atau kerusakan yang disengaja atau penghancuran data, perangkat
keras, atau fasilitas perangkat lunak.

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.

Jika tidak, pengelola buffer akan:


1. Gunakan strategi penggantian untuk memilih buffer untuk penggantian (yang
akan kita sebut buffer pengganti) dan menaikkan pincount-nya. Halaman
yang diminta sekarang disematkan di buffer database dan belum dapat
ditulis kembali ke disk. Strategi penggantian tidak akan memilih buffer yang
telah disematkan;
2. Jika variabel kotor untuk buffer pengganti disetel, ia akan menulis buffer ke
disk;
3. Baca halaman dari disk ke buffer pengganti dan setel ulang variabel kotor
buffer ke nol.

Terminologi berikut digunakan dalam pemulihan database saat halaman ditulis


kembali ke disk:
 Kebijakan mencuri memungkinkan pengelola buffer untuk menulis buffer ke
disk sebelum transaksi dilakukan (buffer dilepas).
12
Dengan kata lain, pengelola buffer "mencuri" halaman dari transaksi.
Kebijakan alternatifnya tidak mencuri.
 Kebijakan paksaan memastikan bahwa semua halaman yang diperbarui
oleh transaksi segera ditulis ke disk saat transaksi dilakukan. Kebijakan
alternatif adalah tanpa paksaan.

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.

Kami mempertimbangkan dua kasus:


 Jika database telah rusak parah — misalnya, jika head disk crash telah
terjadi dan menghancurkan database — maka perlu untuk memulihkan
salinan cadangan terakhir dari database pada disk pengganti dan
menerapkan kembali operasi pembaruan dari transaksi yang dilakukan
menggunakan file log. Ini mengasumsikan, tentu saja, bahwa file log juga
tidak rusak.
 Jika database tidak rusak secara fisik tetapi menjadi tidak konsisten —
misalnya, jika sistem mengalami crash ketika transaksi sedang dijalankan —
maka perlu untuk membatalkan perubahan yang menyebabkan
inkonsistensi. Mungkin juga perlu mengulang beberapa transaksi untuk
memastikan bahwa pembaruan yang mereka lakukan telah mencapai
penyimpanan sekunder. Di sini, kita tidak perlu menggunakan salinan
13
cadangan database tetapi dapat memulihkan database ke kondisi yang
konsisten menggunakan gambar sebelum dan sesudah yang disimpan di file
log.

14
Latihan

1. Mengapa ketidakkonsistenan data dan kehilangan data dapat terjadi.


Mengapa penting untuk mengelola transaksi secara bersamaan?
2. Jelaskan dan berikan contoh, jenis masalah yang dapat terjadi di lingkungan
multi-user ketika akses bersamaan ke database diperbolehkan.
3. Tunjukkan bagaimana mekanisme mencegah masalah yang digambarkan
terjadi. Diskusikan bagaimana mekanisme kontrol konkurensi berinteraksi
dengan mekanisme transaksi.
4. Jelaskan konsep jadwal serial, nonserial, dan serializable.
5. Peran apa yang dimainkan oleh subsistem pengelola transaksi DBMS dalam
sistem multi-pengguna?
6. Diskusikan jenis masalah yang dapat terjadi dengan mekanisme berbasis
penguncian untuk kontrol konkurensi dan tindakan yang dapat diambil oleh
DBMS untuk mencegahnya.
7. Mengapa penguncian dua fase tidak menjadi skema kontrol konkurensi yang
sesuai untuk indeks? Diskusikan skema penguncian yang lebih tepat untuk
indeks berbasis tree.

15

Anda mungkin juga menyukai