Recovery Pemulihan Basisdata Konsep Pemulihan Basisdata Immediate Database
Recovery (Pemulihan Basisdata) –Konsep Pemulihan Basisdata • Immediate Database Modification 1
Konsep Pemulihan Basisdata Immediate Database Modification • Memungkinkan modifikasi database untuk dioutputkan pada saat transaksi masih aktif – • • • Karena ada kemungkinan terjadi failure maka harus ada mekanisme undo untuk membatalkan transaksi yang terkena failure (log record harus mempunyai baik old value maupun new value). Update log record harus dituliskan sebelum database item dituliskan Output terhadap blok yang di-update dapat dilakukan baik sebelum atau setelah transaksi commit Urut-urutan operasi output per blok dapat berbeda dengan urutan blok tersebut ditulisi (urutan operasi output bisa berbeda dengan operasi write) 2
Konsep Pemulihan Basisdata Immediate Database Modification (lanjt) Log Write <T 0 start> <T 0, A, 1000, 950> To, B, 2000, 2050 x 1 <T 0 commit> <T 1 start> <T 1, C, 700, 600> <T 1 commit> • Output A = 950 B = 2050 C = 600 BB, BC BA Note: BX menyatakan block yang mengandung X. 3
Konsep Pemulihan Basisdata Immediate Database Modification (lanjt) • Prosedur recovery mempunyai dua operasi (pada deferred database modification hanya satu operasi) : – • undo(Ti) mengembalikan nilai semua item data yang di-update oleh transaksi Ti ke old value, dilakukan mundur dari log terakhir untuk Ti – redo(Ti) membuat nilai semua item data yang di-update oleh Ti ke new value, dilakukan maju dari log record pertama untuk Ti Kedua operasi harus idempoten – Yaitu, meskipun operasi dilakukan berulang kali efeknya akan sama dengan apabila dilakukan hanya sekali • Diperlukan karena Operasi-operasi yang ada di log record bisa dieksekusi berulang kali selama recovery. • Ketika memulihkan (recovering) setelah failure: • Operasi undo dilakukan pertama kali, baru kemudian operasi redo – Transaksi Ti harus di-undo jika log mempunyai record <Ti start>, tetapi tidak mengandung <Ti commit>. – Transaksi Ti perlu di-redo jika pada log terdapat baik record <Ti start> maupun <Ti commit>. 4
Konsep Pemulihan Basisdata Immediate Database Modification (lanjt) Langkah yang diambil dalam tiap kasus di-atas adalah : (a) undo (T 0): B dikembalikan ke nilai 2000 dan A ke 1000. (b) undo (T 1) dan redo (T 0): C dikembalikan ke nilai 700, dan kemudian A dan B di-set ke nilai 950 dan 2050 secara berurutan. (c) redo (T 0) dan redo (T 1): A dan B di-set ke nilai 950 dan 2050 secara berurutan. Kemudian C di-set ke 600 5
Tinjauan Praktis Oracle Backup and Recovery • Pada Oracle operasi recovery tidak terlepas dari operasi backup • Beberapa terminologi: – Backup (membuat salinan database) – Restore (membuat salinan berada di tempat yang seharusnya sehingga bisa dibaca oleh DBMS) – Recover (membuat data berada pada state yang paling mutakhir) 6
Tinjauan Praktis What things to back-up? • Datafile • Control file • Redo log file (online/archived redo log file) What’s datafile? • Tempat penyimpanan data (table, indeks), diasosiasikan secara logis ke dalam struktur yang disebut tablespace – Satu tablespace bisa berasosiasi dengan lebih dari satu datafile – Hanya dapat diasosikan dengan satu buah database • Datafile dibagi menjadi unit yang lebih kecil yang disebut data block • Pembacaan datafile dilakukan dengan mengambil beberapa blok datafile ke dalam buffer cache (area ini juga disebut System Global Area) • Elemen oracle yang melakukan penulisan dari buffer ke datafile adalah DBWR 7
Tinjauan Praktis What’s control file? • File yang berisi semua operating system file name yang membentuk database. • File ini juga berisi informasi penting yang digunakan pada saat recovery: – – – Nama database Timestamp (waktu pembuatan database) Nama datafile, online/archived redo log file Checkpoint Informasi file yang dibackup (jika menggunakan utilitas Recovery Manager) • What’s Rollback Segment? – Struktur logis di datafile yang menyimpan state informasi/data sebelum berubah. 8
Tinjauan Praktis • What’s online redo log files? – File yang mencatat semua perubahan (update) data. • System Change Number (SCN) – Nilai yang secara unik menyatakan versi database yang sudah commit – Tiap kali oracle melakukan operasi commit maka oracle akan mengeluarkan SCN yang baru. – SCN dipakai pada datafile, control file, dan redo log record 9
Tinjauan Praktis Type backup • Whole database backup • Consistent Whole database Backup (semua file memiliki SCN yang sama) – Dilakukan setelah database dalam keadaan mati • Inconsistent Whole Database – Dilakukan pada saat database masih running) • Inconsistent closed Backup – Dilakukan setelah system crash (shutdown abort) • Tablespace backup • Datafile backup • Control file backup – ALTER DATABASE BACKUP CONTROLFILE to ‘location’ pada SQL*Plus – Jika menggunakan O/S database harus dalam keadaan mati. 10
Tinjauan Praktis Type Recovery • Tablespace point-in-time recovery (TSPITR), bisa recover tablespace ke waktu yang berbeda dari tablespace lain di database • Time-based Recovery (PITR), mengembalikan database ke waktu yang didefinisikan oleh user • Cancel-based recovery, mengembalikan database sampai perintah CANCEL dikeluarkan • Change-based recovery atau log sequence recovery, memulihkan database sampai pada SCN tertentu yang ada di redo log record. 11
Tugas Per Kelompok (Dikumpul maksimal pada UTS) • Buatlah contoh-contoh backup database • Buatlah contoh-contoh recovery (TSPITR, Cancel-based, change-based) dengan skenario failure dibuat sendiri. • Hasil tugas adalah laporan berisi minimal (skenario failure yang ditangani, tampilan di layar pada saat melakukan backup, anggota kelompok yang bertanggung jawab untuk operasi tersebut). • DBMS yang digunakan Oracle/Ms. SQL Server 12
- Slides: 12