Anda di halaman 1dari 19

Recovery

Proteksi data

Sebuah fasilitas untuk melindungi data dari berbagai risiko sehingga dapat diantisipasi dari kemungkinan sbb: - Gangguan listrik - Kerusakan harddisk - Kesalahan perangkat lunak (tdk prosedur) - Akses oleh orang yang tidak berhak - Akibat dari multiuser

Kontrol yang tersedia


Recovery Security Integrity Concurrency

(Pemulihan) (keamanan) (Integritas) (Konkurensi)

Recovery

(Pemulihan)

Upaya untuk mengembalikan keadaan basisdata pada posisi semula yang dianggap benar sebelum terjadinya kegagalan.

Macam kegagalan: 1. Kegagalan Transaksi 2. Kegagalan Sistem 3. Kegagalan Media


4

Kegagalan transaksi

Transaksi Serangkain (paket) prosedur proses yang memperbaharui data pada sejumlah tabel di dalam basisdata.

Contoh pada ATM 1. Memasukkan Nilai Uang yang akan di tarik 2. Pemotongan saldo pada Tabel 3. Penarikan dicatat pada Tabel Tranaksi 4. ATM mengeluarkan uang Misalnya kegagalan terjadi pada saat langkah ke 4 (empat), oleh karena suatu hal ATM tidak mengeluarkan uang
6

Mengantisipasi jika kegagalan Transaksi


Aplikasi yang baik harus dapat mengantisipasi seperti kejadian kegagalan transaksi pada langkah ke 4 Hal ini yang disebut Pemulihan transaksi

Pemulihan transaksi

Mendefinisikan keadaan sbb:

Mulai (Pernyataan keadaan awal transaksi) Disetujui sebagian (Pernyataan suatu langkah transaksi berhasil) Gagal (Pernyataan suatu langkah transaksi gagal dilaksanakan) Batal (Pernyataan suatu langkah transaksi batal dilaksanakan) Disetujui (Pernyataan suatu langkah transaksi berhasil dijalankan) Berakhir (Pernyataan keadaan transaksi telah berakhir)

Flowchartnya:
T

Mulai

Potong saldo

Berhasil Y

Catat transaksi penarikan


T Berhasil Y

Keluarkan uang

Berhasil T

Setujui Transaksi

Batalkan proses

Selesai

Teknik Pemulihan Transaksi

1.

Defered upate / perubahan yang ditunda


Immediate Upadate / perubahan langsung Shadow Paging

2.

3.

10

Defered upate / perubahan yang ditunda


Perubahan pada DB tidak akan berlangsung sampai transaksi ada pada poin disetujui (COMMIT). Jika terjadi kegagalan maka tidak akan terjadi perubahan, tetapi diperlukan operasi redo untuk mencegah akibat dari kegagalan tersebut.

11

Immediate Upadate / perubahan langsung


Perubahan pada DB akan segera tanpa harus menunggu sebuah transaksi tersebut disetujui. Jika terjadi kegagalan diperlukan operasi UNDO untuk melihat apakah ada transaksi yang telah disetujui sebelum terjadi kegagalan.

12

Shadow Paging
Menggunakan page bayangan imana paa prosesnya terdiri dari 2 tabel yang sama, yang satu menjadi tabel transaksi dan yang lain digunakan sebagai cadangan. Ketika transaksi mulai berlangsung kedua tabel ini sama dan selama berlangsung tabel transaksi yang menyimpan semua perubahan ke database, tabel bayangan akan digunakan jika terjadi kesalahan. Keuntungannya adalah tidak membutuhkan REDO atau UNDO, kelemahannya membuat terjadinya fragmentasi.
13

Pemulihan sistem

Pada sebuah sistem bisa saja terjadi kegagalan, jika banyak transaksi sedang berlangsung tiba-tiba terjadi ganguan pada sistem sehingga menyebabkan semua data dalam RAM hilang. Transaksi2 yang tidak selesai harus dibatalan jika sistem diaktifkan kembali (proses UNDO) Sistem memiliki transaksi mana yang sudah Berakhir disetujui dan yang belum disetujui, jejak langkah tersebut disimpan pada sebuah LOG.
14

Kegagalan
Basis data tidak rusak

Recovery yang lebih disukai: beralih ke basis data duplikat Alternatif 1: rollback Alternatif 2: restart dari checkpoint

Kerusakan basis data

Recovery yang lebih disukai: beralih ke basis data duplikat Alternatif 1: rollforward Alternatif 2: memproses transaksi kembali
15

Rollback

16

Rollforward

17

Pemulihan media

Pada kegagalan media penanganannya adalah dengan memuat kembali data yang dianggap rusak, dengan cara merestore basisdata hasil backup terakhir.

18

Harddisk tergores
Data yang ada pada harddisk yang tergores di dalam basisdata pasti rusak dan tidak dapat dibaca. Cara mempebaikinya sbb: 1. Deteksi data yang masih baik, dengan cara membaca data dari awal sampai berhenti pada posisi yg rusak tsb. dan catat index number datanya. Kemudian di export ke basis data lain, untuk mengumpulkan yang baik saja. 2. Baca kelanjutan data mulai dari index setelah yang rusak, sampai berhenti pada posisi yg rusak berikutnya dan lakuan expot kembali untuk mengumpulkan yang baik saja 3. Lakukan hingga data selesai semua diexport, terakhir lakukanlah mengimpor data ke databasenya.
19