Feeds:
Posts
Comments

Posts Tagged ‘Temporary tabel’

Oleh : Stefanus Januar (1200952163)

Flashback
Teknologi flashback menyediakan feature baru untuk melihat dan mengembalikan data sesuai waktu yang diinginkan. Teknologi flashback merupakan revolusi untuk meperbaiki data secara mudah. Merupakan teknologi pada oracle yang memungkinkan penggunanya untuk melakukan recover dengan cepat dan mudah.

Gambar 1. Teknologi Flashback (Best & Billings, 2005, p 17-3)

Menurut Alapati, 2005 ,p 164, teknologi flashback hanya dapat digunakan pada saat terjadi logical corruption. Yang dimaksud dengan logical corruption adalah kesalahan user dalam memanipulasi data, misalkan terjadi ketidaksengajaan dalam menghapus sebuah table dan juga disebabkan oleh virus yang merusak  data secara logical. Yang dimaksud dengan physical corruption adalah kerusakan fisik pada database tersebut sehingga perlu menggunakan data backup dari media lain untuk memperbaiki database tersebut. Pada physical corruption , flashback tidak dapat memperbaikinya. Masing – masing teknologi flashback dapat diakses melalui enterprise manager. Teknologi flashback memiliki level-level tertentu yang memiliki dampak yang berbeda ketika digunakan, dapat dilihat pada gambar 1.

Database Administration Features
Masing-masing teknologi saling terkait satu sama lain dalam hal penggunaannya. Teknologi flashback terbagi  menjadi beberapa bagian yaitu :

  • Flashback Database
    Merupakan  teknologi untuk memperbaiki seluruh database sesuai waktu yang diinginkan.  Menggunakan Flashback log untuk memperbaiki data. Dalam hal ini ketika dilakukan flashback seluruh data dalam database berubah sesuai dengan parameter waktu yang digunakan. Dalam penggunaan flashback database , database harus dalam kondisi mount exclusive.
    SHUTDOWN DATABASE
    STARTUP MOUNT EXCLUSIVE
    FLASHBACK DATABASE TO TIMESTAMP SYSDATE-1;
  • Flashback Drop
    Merupakan teknologi untuk mengembalikkan table yang telah dilakukan perintah drop . Menggunakan Recycle bin untuk memperbaiki data. Recycle bin adalah tabel data dictionary yang menampung informasi tentang tabel yang dilakukan drop. Terdapat 2 jenis recycle bin yaitu DBA recycle bin dan user recycle bin. Untuk menggunakan flashback drop biasanya digabungkan dengan perintah flashback tabel.
    FLASHBACK TABLE JOB_HISTORY TO BEFORE DROP;
  • Flashback Tabel
    Merupakan teknologi untuk mengembalikan tabel yang telah ada sesuai dengan parameter waktu yang digunakan. Menggunakkan undo data untuk memperbaiki data. Flashback tabel menyediakan cara kepada user untuk memodifikasi tabel dengan mudah dan cepat tanpa bantuan dari DBA selama user tersebut memiliki hak akses untuk melakukan flashback.    FLASHBACK TABLE hr.employees TO TIMESTAMP
    TO_TIMESTAMP(‘2005-05-05 05:32:00′,’YYYY-MM-DD HH24:MI:SS’);

Ketiga teknologi flashback tersebut , ketika dilakukan flashback maka akan mengubah data-data pada database.

Application Development Features
Menurut Adams & Paapanen, 2003, p 516 ,teknologi flashback menawarkan kapabilitas untuk melakukan perintah query pada data history untuk melakukan analisis. Berbeda dengan teknologi flashback database, drop , dan tabel , flashback time navigation tidak mengubah data pada database melainkan melakukan perintah query pada data history untuk dilakukan analisis untuk memperbaiki data sesuai dengan kebutuhan. Dengan demikian user dapat melakukan navigasi pada setiap perubahan data yang ada. Untuk melakukan navigasi memerlukan parameter waktu dalam bentuk TIMESTAMP atau SCN.
Terdapat 3 teknologi yaitu

  • Flashback Query : Melakukan query data pada data history pada waktu yang spesifik. Dilakukan dengan perintah select dengan tambahkan AS OF dan spesifikasikan waktu untuk menampilkan data.Menggunakan undo data untuk menampilkan data.

SELECT employee_id, salary FROM employees
AS OF TIMESTAMP t1
WHERE employee_id = 200

  • Flashback Versions Query : Melakukan query data history dengan parameter waktu mulai dan akhir , maka data akan ditampilkan berdasarkan versi-versi dari row tersebut. Sebagai catatan flashback hanya dapat menampilkan data yang sudah dicommit. Menggunakan undo data untuk menampilkan data.

SELECT versions_xid, salary FROM employees
VERSIONS BETWEEN TIMESTAMP t1 and t2
WHERE employee_id = 200;

  • Flashback Transaction Query : Merupakan tool yang dapat digunakan untuk melihat perubahan data berdasarkan level transaksi. Yang dimaksud dengan level transaksi adalah transaksi yang dilakukan oleh user sampai dilakukan commit. Menggunakan undo data untuk menampilkan data.

SELECT xid, operation, start_scn,commit_scn, logon_user, undo_sql FROM flashback_transaction_query

Ketiga flashback ini menampilkan data-data yang ada untuk dilakukan analisis. Perlu diperhatikan bahwa flashback sangat dipengaruhi oleh undo retention time. Parameter ini menentukan apakah data masih ada pada undo data, jika sudah lewat dari waktu yang ditentukan maka data tidak dapat dilakukan flashback. Secara default Oracle memiliki undo retention time sebesar 15 menit.

Flashback Versions Query
Flashback versions query menyediakan cara untuk melakukan audit data pada sebuah baris dari table dan mengambil informasi tentang transaksi yang mempengaruhi baris tersebut. Menurut Adams & Paapanen, 2003, p 525 ,dalam flashback versions query terdapat pseudocolumn yaitu :

  • VERSIONS_XID         :  Sebagai penanda pada transaksi.
  • VERSIONS_OPERATION     : Kolom ini berisi informasi tentang operasi yang dilakukan , apakah insert , delete , atau update.
  • VERSIONS_STARTTIME    : Kolom ini berisi tentang informasi kapan row tersebut dibentuk.
  • VERSIONS_ENDTIME    :  Kolom ini berisi tentang informasi kapan row tersebut expired.

Contoh Kasus
Select Pada Awal

Gambar 2. Hasil dari Select

Pertama lakukan perintah select salary untuk employee id yang 200, maka di dapat data Jennifer dengan salary sebesar 4400. Untuk lebih jelas perhatikan gambar 2.

Terjadi Kesalahan Update data

Gambar 3. Contoh Update

Setelah itu lakukan update data untuk employee id 200 , dengan salary 4600 , lalu commit kemudian lakukan update kembali untuk employee id  200 , dengan salary 4800 dan commit. Untuk lebih jelas perhatikan gambar 3.

Melakukan Analisis Data

Gambar 4. Contoh Analisis Data

Untuk memperbaiki data seperti gambar 3 , maka kita dapat melakukan flashback versions query untuk menganalisis kesalahan yang terjadi untuk melakukan perbaikan data. Contoh flashback versions query dapat dilihat pada gambar 4.

Untuk Mengambil Query

Gambar 5. Contoh pengambilan data

Setelah mendapatkan data salary yang ingin dikembalikan , untuk memperbaiki data tersebut ,kita dapat menggunakan tabel flashback transaction query. Dengan menggunakan tabel tersebut ,kita dapat dengan mudah memperoleh perintah sql untuk mengembalikan data tersebut . Pada gambar 5, ROWID merupakan kolom yang dibentuk oleh oracle secara otomatis pada setiap tabel yang dibuat oleh user, untuk melihat isi kolom tersebut dapat dilakukan perintah select ROWID. Setelah itu lakukan perintah tersebut untuk melakukan perbaikan. Gambar 6 merupakan contoh ketika kita melakukan flashback menggunakan enterprise manager.

Gambar 6. Contoh Flashbcak

Hambatan
Flashback versions query tidak dapat dilakukan pada hal-hal sebagai berikut :

  • External tabel : merupakan tabel yang digunakan untuk menyimpan data dari file lain. Misalkan kita memiliki file excel yang ingin dimasukkan pada oracle , maka oracle akan menyimpan file tersebut kedalam tabel external. Flashback versions query tidak dapat melakukan fungsinya pada external tabel.
  • Temporary tabel : merupakan tabel yang sifat nya hanya sementara. Tabel jenis ini digunakan pada transaksi yang rumit sehingga perlu dilakukan penyimpanan sementara. Flashback versions query tidak dapat melakukan fungsinya pada temporary tabel.
  • Fixed tabel : merupakan tabel yang ada pada oracle yang sudah didefinisikan oleh oracle untuk keperluan system. Flashback versions query tidak dapat melakukan fungsinya pada fixed tabel.
  • DDL Statement : flashback versions query tidak dapat dilakukan ketika struktur dari tabel berubah.
  • Shrink Operation : merupakan operasi yang dilakukan untuk mengurangi ukuran dari file oracle pada saat dilakukan delete. Misalkan ukuran tabel memiliki ukuran 10mb dengan pertumbuhan 2mb. Lalu dilakukan delete sehingga menghapus data sebesar 6 mb, namun ukuran tabel tetap 10mb sehingga perlu dilakukan operasi shrink sehingga ukuran tabel menjadi 4mb. Flashback versions query tidak dapat dilakukan jika operasi ini dijalankan.

Daftar Pustaka

  • Adams, D., & Paapanen, E. (2003). Oracle® Database Application Developer’s Guide – Fundamentals 10g Release 1 (10.1). California: Oracle Corporation.
  • Alapati, S. R. (2005). Expert Oracle Database. New York: Grace Wong.
  • Best, T., & Billings, M. (2005). Oracle Database 10g Administration Workshop I (Edition 3.0 ed.). California: Joseph Fernandez.

Read Full Post »