Oracle Flashback Query

Salah satu fitur andalah oracle yang sdh ada sejak oracle versi 9i yaitu oracle flashback query. fitur ini masih ada hubungannya dengan Backup & Recovery yaitu kemampuan system database management untuk perlindungan data jika ada kerusakan database atau data yg hilang.

Dengan flashback query user dapat melihat data dengan cepat dan mudah seperti data sebelumnya, bahkan setelah data itu dimodifikasi dan di commit, baik itu satu row maupun satu table. Kali ini fokusnya adalah bagaimana menggunakan flashback query tersebut.

Menurut dokumentasi oracle, teknologi flashback dapat memperbaiki error user seperti :

1. Drop table statement

2. update, delete, insert transaction

3. batch job atau wide-spread application errors

Datafile yg terhapus atau data hilang krn kerusakan media harddisk TIDAK BISA ditanganin flashback query.

Konfigurasi sebelum menggunakan flashback query

Login ke DB, lihat paramete UNDO. Jalankan command ‘show parameter UNDO;’

akan ditampilkan parameter yg akan digunakan oleh flashback query.  Nilai UNDO_RETENTION di set 900 detik, ini adalah nilai default dan waktu yg ditentukan berapa lama data akan disimpan dalam UNDO. Paramater UNDO_RETENTION dan UNDO_TABLESPACE bersifat dinamis tapi paramenter UNDO_MANAGEMENT tidak dinamis, diperlukan shutdown dan restart DB supaya undo managementnya berjalan.

Supaya seorang user bisa menggunakan flashback query

1. User harus punya hakFLASHBACK

2. User punya hak ‘EXECUTE’ package dbms_flashback

Ujicoba

Kita akan menggunakan table employee nya oracle. Buat table baru misalnya employee_temp dengan struktur yg sama dengan table employee. Table ini akan berfungsi sebagai tempat penyimpanan data yg direcover. Walaupun sebenarnya bisa juga me-recover data ke table yg sebenarnya, tapi sebaiknya memakai table terpisah sebagai perbandingan dengan table aslinya.

1. Tampilkan record menggunakan query select.

2. Lakukan perubahan pada table employee yg asli (bisa update, delete jgn lupa commit)

3. Tampilan record lagi menggunakan query select untuk memastikan data sudah berubah.

Ada 2 (dua) cara untuk menggunkan flashback query;

1. Menggunakan time-based (waktu kejadian)

2. Menggunakan System Change Number – SCN

Misalkan kita ingin melihat data yg secara tidak sengaja terhapus dari table empolyee dan sudah dicommit berikut ini contoh query untuk recovery menggunakan waktu kejadian

SQL> INSERT INTO EMPLOYEE_TEMP
    (SELECT * FROM EMPLOYEE AS OF TIMESTAMP ('13-SEP-04 8:50:58','DD-MON-YY HH24: MI: SS')

~ by Ali Imran on November 13, 2009.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: