The Database Environment

advertisement
Recovery
Adapted from:
Connolly, Thomas., et.al., 2002. Database System.
Wokingham England: Addison-Wesley Publishing Company
1
MODEL TRANSAKSI
 Selama proses eksekusi transaksi, basis data secara temporer boleh
jadi dalam keadaan status tidak konsisten
 Database recover y: proses mengembalikan basis data ke status
benar bila terjadi kegagalan transaksi
 Merupakan layanan yang ada dalam DBMS
2
PENYEBAB KEGAGALAN
Penyebab kegagalan antara lain:
 System crash menyebabkan error pada hardware
atau software, isi memori utama menjadi hilang.
 Media failure, adanya crash pada head atau media
yg tak dapat dibaca  kehilangan data pada
memori sekunder.
 Application software error, seperti kesalahan logika
dalam program yg mengakses basisdata 
kegagalan transaksi.
 Bencana alam seperti kebakaran, banjir, gempa.
3
PENYEBAB KEGAGALAN
Penyebab kegagalan antara lain:
 Kecerobohan atau kerusakan data atau fasilitas
yang dilakukan operator atau pengguna secara
tidak sengaja.
 Sabotase: kerusakan data, fasilitas hardware atau
software yang dilakukan dengan sengaja.
Apapun penyebabnya, ada dua efek yg perlu
diperhatikan:
 hilangnya data dl memori utama termasuk buffer
basisdata.
 hilangnya data pada memori sekunder
4
FASILITAS RECOVERY
Sebuah DBMS harus mempunyai fasilitas recovery
berikut:
 Mekanisme backup, membuat salinan backup basis
data secara periodik.
 Fasilitas logging, merekam status transaksi dan
perubahan basis data dari waktu ke waktu.
 Fasilitas checkpoint, memberlakukan update basis
data yang menunjukkan kemajuan yang telah
dibuat secara permanen.
 Recovery manager, memungkinkan sistem
mengembalikan basis data ke status konsisten
sebelum terjadinya kegagalan.
5
MEKANISME BACKUP
 DBMS membuat salinan backup basis data dan log
file secara teratur pada interval waktu tertentu
tanpa harus menghentikan sistem.
 Salinan backup basis data dapat digunakan bila
basis data rusak atau hilang.
 Biasanya backup disimpan dalam offline-storage.
6
LOG FILE
 Untuk mengetahui track (jejak) transaksi basis
data, DBMS mengelola file khusus yang disebut log
atau journal
 Log atau journal berisi informasi tentang semua
update yang dilakukan terhadap basis data selama
proses transaksi berlangsung:
1. Record transaksi
2. Record checkpoint.
7
RECORD TRANSAKSI
Record transaksi terdiri atas:
 Identifier (pengenal) transaksi
 Jenis record log
(transaksi: start, insert, update, delete, abort, commit)
 Identifier item data yang berkaitan dengan aksi basis data
(operasi insert, delete, update)
 Before image item data, yaitu harga sebelum perubahan
dilakukan (oleh operasi update atau delete)
 After image item data, yaitu harga setelah perubahan
dilakukan (oleh update atau delete)
 Informasi pengelolaan log, seperti pointer ke record log
sebelum atau sesudah untuk suatu transaksi
8
CHECKPOINT
 Informasi dalam log file digunakan untuk
melakukan recovery basis data dari kegagalan.
 Namun dengan skema ini tidak dapat diketahui
kapan kegagalan muncul dan seberapa jauh
melangkah mundur dalam log untuk melacak di
mana transaksi harus diulang secara aman untuk
ditulis ke dalam basis data.
 Untuk membatasi jumlah pelacakan dan sekuen
proses yang dibutuhkan maka dilakukan teknik
dengan menggunakan checkpoint.
 Checkpoint adalah titik sinkronisasi antara basis
data dan file log transaksi. Semua buffer telah
ditulis ke memori sekunder.
9
CHECKPOINT
Checkpoint diperlukan untuk operasi berikut:
 Menulis semua record log dl memori utama ke
memori sekunder
 Menulis blok yg dimodifikasi dalam buffer bd ke
memori sekunder
 Menulis record checkpoint ke file log. Record ini
berisi identifier (pengenal) semua transaksi yang
aktiv pada checkpoint tersebut.
10
TEKNIK RECOVERY:
Basis data rusak parah
 Prosedur recovery yang digunakan bergantung pada
tingkat kerusakan basis data yang muncul.
 Ada dua kasus yang perlu dipertimbangkan yaitu:
1. Jika basis data telah rusak parah misalnya
karena disk head crash:
 lakukan restore salinan backup terakhir
 lakukan operasi update untuk transaksi yg
committed dengan menggunakan log file.
Tentu saja dengan asumsi bahwa log file
tidak rusak.
11
TEKNIK RECOVERY:
Basis data tidak konsisten
2. Jika basis data belum rusak secara fisik tetapi
menjadi tidak konsisten, misalnya karena sistem
crash selagi transaksi dieksekusi, maka:
 diperlukan undo (pembatalan) perubahan yang
menyebabkan basisdata tidak konsisten
 boleh jadi diperlukan redo beberapa transaksi
untuk menjamin update yang dilakukan telah
terekam pada memori sekunder.
12
TEKNIK RECOVERY:
Basis data tidak konsisten
 tidak diperlukan salinan backup basis data tetapi
me-restore basis data ke status konsisten dengan
menggunakan before- dan after-image yang
terekam dl log file.
 Untuk kasus (2) yaitu basis data tidak hilang tetapi
dalam status tidak konsisten, akan ditinjau teknik
recovery berikut:
• deferred update,
• immediate update, dan
• shadow paging.
13
TEKNIK RECOVERY:
DEFERRED UPDATE (1)
 Update tidak dilakukan sampai transaksi
mencapai titik commit
 Jika transaksi gagal sebelum mencapai titik
commit, basis data belum dimodifikasi dan karena
itu aksi undo tidak perlu dilakukan.
 Aksi redo mungkin diperlukan untuk meng-update
transaksi yg committed.
14
TEKNIK RECOVERY:
DEFERRED UPDATE (2)
Menggunakan log file untuk mencegah kegagalan sistem:
 Ketika transaksi dimulai, tulis record transaction start ke
dalam log.
 Ketika operasi penulisan dilakukan, tulis record log berisi
semua data sebelumnya. Jangan menulis ke buffer atau ke
dalam basis datanya.
 Ketika transaksi akan commit, tulis record transaction
commit ke dalam log, tulis semua record log transaksi ke
disk kemudian commit transaksi. Gunakan record log untuk
melaksanakan update aktual ke dalam basis data.
 Jika transaksi abort, abaikan record log transaksi & jangan
melakukan penulisan
15
TEKNIK RECOVERY:
DEFERRED UPDATE (3)
 Yang perlu diperhatikan adalah bahwa penulisan
record log ke disk dilakukan sebelum transaksi
benar-benar commit,
 Dengan demikian, jika sistem gagal, record log
tetap ada dan update dapat dilakukan kemudian.
16
TEKNIK RECOVERY:
DEFERRED UPDATE (4)
 Dalam hal terjadi kegagalan, file log digunakan
untuk mengidentifikasi transaksi mana yang gagal.
 Mulai dari entry terakhir dalam log file, lakukan
pelacakan mundur untuk menentukan checkpoint
yang paling akhir:
a. Lakukan redo untuk transaksi antara start dan
commit. Redo melaksanakan semua penulisan
ke basis data menggunakan record log afterimage dengan urutan sebagaimana urutan log.
17
TEKNIK RECOVERY:
DEFERRED UPDATE (5)
b. Transaksi antara start dan abort diabaikan karena
tidak ada penulisan ke dalam basis data sehingga
undo tidak dilakukan.
 Jika terjadi crash pada waktu proses recovery
dilakukan, record log digunakan lagi untuk
melakukan restore basis data.
18
TEKNIK RECOVERY:
IMMEDIATE UPDATE
 Update dilakukan tanpa menunggu transaksi
mencapai titik commit.
 Jika transaksi gagal sebelum mencapai titik
commit, perlu dilakukan aksi undo.
 Aksi redo mungkin diperlukan untuk meng-update
transaksi yg committed.
19
TEKNIK RECOVERY:
IMMEDIATE UPDATE
 gunakan log file untuk mencegah kegagalan sistem
dengan cara sbb:
 Ketika transaksi dimulai, tulis record transaction start ke dlm
log.
 Ketika operasi penulisan dilakukan, tulis record berisi data yang
diperlukan ke dalam file log.
 Sekali record log ditulis, tulis update ke dalam buffer basis data.
 Update ke bd ditulis ketika buffer dipindahkan ke memori
sekunder.
 Ketika transaksi commit, tulis record transaction commit ke dl
log.
20
TEKNIK RECOVERY:
IMMEDIATE UPDATE
 Yang penting di sini adalah apa yang disebut
dengan write-ahead log protocol, yaitu penulisan
record log dilakukan sebelum penulisan ke basis
data.
 Aturan ini menjamin bila ada transaksi yang tidak
commit maka proses undo dapat dilakukan.
21
Download