Mengembalikan tabel terhapus dengan recyclebin Oracle
Melanjutkan tutorial sebelumnya yaitu cara menggunakan Oracle dan pengunaan fitur oracle. Pada pembahasan kali ini mengenai pengembalian tabel yang terhapus pada oracle dengan fitur Flashback.
Tentunya sebagai pemula kita pernah melakukan ujicoba menghapus tabel. Hal ini akan menjadi lebih fatal jika table yang terhapus dilakukan dengan tidak sengaja dan data pada table membuat kita kehilangan suatu hal yang sanagt berharga, misal pekerjaan sebagai seorang DBA/Developer.
Ketika kita menghapus tabel database, Pertanyaan yang sering muncul adalah “Apakah table yang terhapus itu dapat dikembalikan? Jika bisa, bagaimana cara mengembalikannya? Apa efeknya terhadap isi atau entitas database?
Jawabannya, YA! dengan Oracle kita dapat mengembalikan table yang sengaja ataupun tidak sengaja terhapus di database.
Cara melakukan recover table database oracle yang terhapus bisa menggunakan fitur:
flashback before drop;
Fitur ini menggunakan teknologi recycle bin yang bisa diaktifkan pada database oracle. Jika recycle bin parameter di-set ON, table yang terhapus tidak akan langsung dimusnahkan tetapi akan ditampung di penampungan sementara bernama recycle bin.
Fitur recycle bin sendiri baru ada sejak Oracle Database 10g dan sudah aktif by default. Tetapi jika sebelumnya anda pernah mematikan fitur ini dan ingin mengaktifkan kembali bisa dengan mengeksekusi quey
alter system set recyclebin=on scope=both;
Langsung saja kita lakukan Ujicoba Praktikum
Kita cek terlebih dahulu tabel yang kita miliki
select * from tab;
Hasil seperti berikut
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPARTMENTS TABLE
DIVISI TABLE
DOKTER TABLE
EMPLOYEES TABLE
EMP_DETAILS_VIEW VIEW
JOBS TABLE
JOB_HISTORY TABLE
LOCATIONS TABLE
OBAT TABLE
PASIEN TABLE
PENYAKIT TABLE
REGIONS TABLE
RESEP TABLE
SYS_TEMP_FBT TABLE
Kita coba menghapus salah satu tabel dengan nama table "RESEP" melalui SQLPLUS
drop table RESEP;
Kita cek ULANG tabel yang kita miliki
select * from tab;
Hasil seperti berikut
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPARTMENTS TABLE
DIVISI TABLE
DOKTER TABLE
EMPLOYEES TABLE
EMP_DETAILS_VIEW VIEW
JOBS TABLE
JOB_HISTORY TABLE
LOCATIONS TABLE
OBAT TABLE
PASIEN TABLE
PENYAKIT TABLE
REGIONS TABLE
SYS_TEMP_FBT TABLE
Kita cek pada recycle bin dengan query
SELECT OBJECT_NAME, ORIGINAL_NAME, OPERATION, TYPE, TS_NAME, CREATETIME FROM RECYCLEBIN WHERE ORIGINAL_NAME='RESEP';
Hasilnya sebagai berikut
OBJECT_NAME ORIGINAL_NAME OPERATION
------------------------------ -------------------------------- ---------
TYPE TS_NAME CREATETIME
------------------------- ------------------------------ -------------------
BIN$qBZK+EFTVzbgUAB/AQANKw==$0 RESEP DROP
TABLE USERS 2020-06-05:06:07:44
Kita masih bisa melakukan select data pada tabel resep pada recycle bin dengan cara
select * from "BIN$qBZK+EFTVzbgUAB/AQANKw==$0";
Langkah untuk mengembalikan tabel resep dengan query
flashback table RESEP to before drop;
atau kita bisa mengembalikan dengan nama yang baru dengan query
flashback table RESEP to before drop rename to resep_2;
Simple kan caranya? ok kita lanjut ke cara yang lebih advance
Aktifkan dulu servicenya
alter table dokter enable row movement;
kita bisa mengembalikan tabel atau database dari masa yang lebih lampau. Caranya sebagai berikut:
perintahuntuk menampilkan jumlah log history
select current_scn FROM v$database;
hasilnya
CURRENT_SCN
-----------
12703343
perintah melihat waktu dari no record
SELECT scn_to_timestamp(12703343) FROM dual;
hasilnya
SCN_TO_TIMESTAMP(12703343)
---------------------------------------------------------------------------
14-JUN-20 07.14.24.000000000 PM
Perintah mengembalikan database
FLASHBACK DATABASE TO TIMESTAMP TO_TIMESTAMP('14-JUN-20 07.14.24′,’DD-MM-YYYY:HH24:MI:SS’);
atau
FLASHBACK DATABASE TO SCN 12703343;
Perintah mengembalikan tabel
FLASHBACK TABLE RESEP TO TIMESTAMP TO_TIMESTAMP('14-JUN-20 07.14.24′,’DD-MM-YYYY:HH24:MI:SS’);
atau
FLASHBACK TABLE RESEP TO SCN 12703343;
Recycle bin bisa kita kosongkan manual dengan quey:
purge recyclebin;
atau kita juga dapat menghapus tabel dengan spesifik dengan quey
PURGE TABLE "BIN$qBZK+EFTVzbgUAB/AQANKw==$0";
Semoga bermanfaat.
No comments for "Mengembalikan tabel terhapus dengan recyclebin Oracle"
Post a Comment