Oracle - Table

(DB) Oracle/Table 2017. 1. 21. 14:49

 

 [ 테이블 DROP시 휴지통 기능 ]

 

1. 정의 : 테이블을 삭제 하면 오라클도 휴지통을 만들어 놓았다.

2. oracle 10g부터 존재

3. table을 drop 하면 : [ BIN$H+0On1PSLBbgRACAFyioeA==$0 ] 와 같은 형식의 테이블이 생성된다.

4. 휴지통 비우기
     SQL> purge recyclebin;                        사용자의 휴지통 비우기
     SQL> purge dba_recyclebin;                 휴지통내의 모든 놈들 비우기
     SQL> purge tablespace users;              users테이블스페이스의 휴지통 비우기
     SQL> purge table "휴지통내의 이름" ;    휴지통의 하나의 객체만 제거시

6. 휴지통 기능을 enable/disable 상태 확인 및 처리 방법

    상태확인 : SQL>  SELECT a.ksppinm, b.ksppstvl, b.ksppstdf 
                    FROM x$ksppi a, x$ksppcv b WHERE a.indx = b.indx AND a.ksppinm like '%recycle%'
                    ORDER BY a.ksppinm;

     처리방법 : * 10g Release1 의 경우
                                  SQL> ALTER SYSTEM SET "_recyclebin"=FALSE SCOPE = BOTH;

                    * 10g Release2 의 경우 (R2는 default 값이 ON 이므로 OFF 로 만들어 버린다.)
                                  SQL> ALTER SESSION SET recyclebin = OFF;
                                  SQL> ALTER SYSTEM SET recyclebin = OFF;

 7. 휴지통: drop된 DB객체들을 아래의 상황이전까지 보유한다.
                - purge명령으로 영구히 삭제
                - undrop명령으로 drop된 객체를 복구
                - 테이블스페이스내 (휴지통의) 공간이 부족할때
                - 테이블스페이스가 extend될 때

8. 휴지통에 들어있는 객체들 보기
      user_recyclebin
      dba_recyclebin

9. 휴지통의 객체 복구
         SQL> flashback table "휴지통내의 이름" to before drop;
    예) SQL>flashback table "BIN$VPaE9OG4Qwa+KC0MesYKqw==$0" to before drop;

10. 휴지통에 넣지 않고 drop
      SQL> drop table 테이블명 purge;

11.

 

'(DB) Oracle > Table' 카테고리의 다른 글

Oracle - Table Foreign Key Stop/Start  (0) 2017.01.21
Oracle - Table foreign key  (0) 2017.01.21
Oracle - Tablespace  (0) 2017.01.21
Oracle - Table_및_Index_Size계산  (0) 2017.01.21
Posted by 농부지기
,