oracle10g Recyclebin

2008. 11. 30. 13:38Oracle/Oracle Recovery

반응형

SQL> select * from tab;

TNAME                                          TABTYPE  CLUSTERID
---------------------------------- ---------- ------------
BIN$vZBAmE1rSaiCK+8QN9p98g==$0       TABLE                        : drop 된 table
BIN$JkwChjqZRbex7BzBEETFpQ==$0     TABLE                        : drop 된 table
HHH                                                    TABLE
BBB                                                    TABLE

4 개의 행이 선택되었습니다.

SQL> show recyclebin
ORIGINAL NAME    RECYCLEBIN NAME                        OBJECT TYPE  DROP TIME
---------------- ------------------------------------ -------------- -------------------

AAA                   BIN$JkwChjqZRbex7BzBEETFpQ==$0   TABLE             2008-11-30:12:13:12

GGG                  BIN$vZBAmE1rSaiCK+8QN9p98g==$0     TABLE             2008-11-29:21:02:52

SQL> conn /as sysdba

연결되었습니다.

 

SYSDBA 권한을 가진 계정은 show recyclebin 명령어가 되지 않는다.

SQL> desc dba_recyclebin

                       (sysdba권한으로 계정에 상관없이 휴지통에 있는 objects를 전부 확인할 수 있음.)

SQL> col owner for a6
SQL> col type for a6
SQL> col original_name for a15
SQL> select owner,original_name,object_name,type,droptime
  2  from dba_recyclebin;
OWNER  ORIGINAL_NAME   OBJECT_NAME                           TYPE   DROPTIME
-------- --------------- ---------------------------------- ------ -------------------

SYSTEM AAA                 BIN$8+y2KcS+QpCUoZ6Rn9sj6Q==$0 TABLE  2008-11-29:21:02:21

SCOTT   GGG                 BIN$vZBAmE1rSaiCK+8QN9p98g==$0 TABLE  2008-11-29:21:02:52

SCOTT   AAA                 BIN$JkwChjqZRbex7BzBEETFpQ==$0 TABLE  2008-11-30:12:13:12

SQL>

 

- 복구

SQL> flashback table system.aaa to before drop;

플래시백이 완료되었습니다.

SQL>

 

- 휴지통 삭제.

SQL> purge recyclebin; - 일반 계정에서 휴지통 비우기

SQL> purge dba_recyclebin; - sys권한으로 모든 휴지통 다 비우기

SQL> purge tablespace example; (해당 tablespace 내의 모든 object를 삭제)

SQL> purge tablespace example user scott;

                      (scott user에 속하는 example tablespace 내의 object를 삭제)

 

- 테이블 삭제시 휴지통에 넣지않고 바로 삭제.

SQL> drop table aaa purge;

 

일반계정은 show recyclebin 으로 지워진 object를 확인하여 복구를 하고,

sys 는 desc dba_recyclebin 으로 확인 후 복구를 할 수 있습니다.

 

- 휴지통 기능 off

 

SQL> show parameter recyclebin

NAME                       TYPE   VALUE
-------------------- ------ ---------
recyclebin                  string ON
SQL> alter system set recyclebin=off;

시스템이 변경되었습니다.

SQL>

반응형