테이블을 실수로 날려 버린후 똑같은 이름으로 테이블 생성 후 복구를 시도하려고 했으나,
같은 이름이 존재하므로 안되어서 똑같은 이름이 2개가 휴지통으로 들어가게 한 다음의 flashback 을 시도하겠다.
휴지통에 뭐가 있는지 조회합니다.
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TABLES BIN$r44GBl9qQVy4q2/q3F7tjQ==$0 TABLE 2010-02-03:17:14:21 <---- 1번 테이블TABLES BIN$EcW/uJpuSrGq9NRh5R7m/A==$0 TABLE 2010-02-03:17:05:13 <---- 2번 테이블
1. 먼저 1번테이블을 복구 하겠습니다.
SQL> flashback table tables to before drop; <1번 테이블 복구 !!!드롭 하기 전 상태로 복구 하겠음!>
남아 있는 휴지통을 조회해서 이제 2번 테이블을 복구해 봅시다.
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TABLES BIN$EcW/uJpuSrGq9NRh5R7m/A==$0 TABLE 2010-02-03:17:05:13
SQL> flashback table tables to before drop; <2번째 테이블 복구!!>
Flashback complete.
SQL> select * From tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
COPY_COLUMNS TABLE
TABLES TABLE
RB TABLE
COLUMNS TABLE
SQL> select count(*) from tables;
COUNT(*)
----------
125
쨔잔~ TABLES 가 복구 되었습니다.
같은 이름이 존재하므로 안되어서 똑같은 이름이 2개가 휴지통으로 들어가게 한 다음의 flashback 을 시도하겠다.
휴지통에 뭐가 있는지 조회합니다.
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TABLES BIN$r44GBl9qQVy4q2/q3F7tjQ==$0 TABLE 2010-02-03:17:14:21 <---- 1번 테이블TABLES BIN$EcW/uJpuSrGq9NRh5R7m/A==$0 TABLE 2010-02-03:17:05:13 <---- 2번 테이블
1. 먼저 1번테이블을 복구 하겠습니다.
SQL> flashback table tables to before drop; <1번 테이블 복구 !!!드롭 하기 전 상태로 복구 하겠음!>
Flashback complete.
SQL> select * from tab; <나머지 테이블을 조회해 봅니다>
SQL> select * from tab; <나머지 테이블을 조회해 봅니다>
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
COPY_COLUMNS TABLE
BIN$EcW/uJpuSrGq9NRh5R7m/A==$0 TABLE
TABLES TABLE
COLUMNS TABLE
SQL> select count(*) from tables; <1번 테이블을 조회해 봅니다 원래 데이터가 0입니다.>
------------------------------ ------- ----------
COPY_COLUMNS TABLE
BIN$EcW/uJpuSrGq9NRh5R7m/A==$0 TABLE
TABLES TABLE
COLUMNS TABLE
SQL> select count(*) from tables; <1번 테이블을 조회해 봅니다 원래 데이터가 0입니다.>
COUNT(*)
----------
0
----------
0
SQL> alter table tables rename to rb; <1번 테이블 이름을 변경 합니다 TABLES -> RB 로 변경 >
Table altered.
남아 있는 휴지통을 조회해서 이제 2번 테이블을 복구해 봅시다.
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TABLES BIN$EcW/uJpuSrGq9NRh5R7m/A==$0 TABLE 2010-02-03:17:05:13
SQL> flashback table tables to before drop; <2번째 테이블 복구!!>
Flashback complete.
SQL> select * From tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
COPY_COLUMNS TABLE
TABLES TABLE
RB TABLE
COLUMNS TABLE
SQL> select count(*) from tables;
COUNT(*)
----------
125
쨔잔~ TABLES 가 복구 되었습니다.
'DataBase > Oracle SQL' 카테고리의 다른 글
[SQL] START WITH ~ CONNECT BY PRIOR 구문 (0) | 2010.02.03 |
---|---|
[SQL] Oracle Decode() 함수 & case when ~ then ~ end 문 (0) | 2010.02.03 |
[SQL] 9장 Object, 권한주고뺏기 (0) | 2010.01.18 |
[SQL] 8장 DML (0) | 2010.01.18 |
[SQL] 7장 Set Operator (0) | 2010.01.18 |