본문 바로가기

DataBase/Oracle SQL

[SQL] FLASHBACK 테이블 Drop 후 복구

테이블을 실수로 날려 버린후 똑같은 이름으로 테이블 생성 후 복구를 시도하려고 했으나,
같은 이름이 존재하므로 안되어서 똑같은 이름이 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;     <나머지 테이블을 조회해 봅니다>
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
COPY_COLUMNS                   TABLE
BIN$EcW/uJpuSrGq9NRh5R7m/A==$0 TABLE
TABLES                         TABLE
COLUMNS                        TABLE

SQL> select count(*) from tables;              <1번 테이블을 조회해 봅니다  원래 데이터가 0입니다.>
  COUNT(*)
----------
         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