2013년 8월 22일 목요일

[Oracle] 10G purge 휴지통 비우기/복원 기능

[oracle@localhost /usr/lib/oracle/xe]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Jun 26 09:54:24 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn MONITOR/ahffk1029;
Connected.
SQL> select * from tab;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
CPU_USER                       TABLE
GRAPH                          TABLE
HOSTINFO                       TABLE
PLAN_TABLE                     TABLE
SERVERINFO                     TABLE
SESSION_USER                   TABLE
TTT                            TABLE
BIN$bSXyAHGW3yzgQAB/AQAoOQ==$0 TABLE
CONNECTINFO                    TABLE
ALERTINFO                      TABLE
10 rows selected.
SQL> drop table 'BIN$bSXyAHGW3yzgQAB/AQAoOQ==$0'
  2  ;
drop table 'BIN$bSXyAHGW3yzgQAB/AQAoOQ==$0'
           *
ERROR at line 1:
ORA-00903: invalid table name
SQL> drop table 'BIN$bSXyAHGW3yzgQAB/AQAoOQ==$0' cascade constraints
  2  ;
drop table 'BIN$bSXyAHGW3yzgQAB/AQAoOQ==$0' cascade constraints
           *
ERROR at line 1:
ORA-00903: invalid table name
SQL> drop table 'BIN*'
;  2
drop table 'BIN*'
           *
ERROR at line 1:
ORA-00903: invalid table name
SQL> purge recyclebin;
Recyclebin purged.
SQL> select * from tab;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
CPU_USER                       TABLE
GRAPH                          TABLE
HOSTINFO                       TABLE
PLAN_TABLE                     TABLE
SERVERINFO                     TABLE
SESSION_USER                   TABLE
TTT                            TABLE
CONNECTINFO                    TABLE
ALERTINFO                      TABLE
9 rows selected.
SQL>
위의 실습을 보듯 Oracle 10G에는 휴지통 기능이 있다.
휴지통의 데이터 테이블은 'BIN$bSXyAHGW3yzgQAB/AQAoOQ==$0' 이다.
SQL> purge recyclebin => 이부분은 휴지통 비우기 명령어 이다.

휴지통(Recycle Bin)오라클이 10g에서 새롭게 추가한 '휴지통' 이라는 기능.
테이블을 DROP 하더라도 언제던지 복원할 수 있게 하고자 하는 것이고요,
윈도우의 휴지통과 같다고 보시면 됩니다.

휴지통에 들은 테이블을 조회.
SQL> show recyclebin;

휴지통의 모든 내용이 비워집니다.
SQL> purge recyclebin;

삭제된 테이블을 되살리고 싶다면
SQL> flashback table 테이블명 to before drop;

만약, 특정 테이블을 휴지통에 남기지 않고 모두 삭제하려면..
SQL> drop table 테이블명 purge;

purge문 없이 그냥 drop 한 후에는
SQL> purge table 테이블명;

 

댓글 없음:

댓글 쓰기