본문 바로가기

DB의 속삭임/DataBase의 외침

[DB][ORACLE][관리] Oracle의 휴지통 Flashback테이블

* Flashback테이블 : Oracle에서 Table을 Drop했을때 바로 삭제 되는 것이 아니라, Flashback테이블에 남게 된다. 

                             이는 Oracle Flashback Technologies의 하나이다.

* 10g부터 가능한것으로 보이며, 9i는 과거 시점부터 데이터는 볼수 있지만 테이블을 즉시 되살리수는 없다고 합니다.


1. 삭제된 테이블 확인.

show recyclebin;

* 해당 명령을 실행 시키면, 삭제되기전의 테이블 명과 삭제후 변환된 테이블명을 모두 확인 가능하며, 언제 삭제되었는지도 확인이 가능하다. Object가 삭제되면 "BIN$"로 시작되는 임의의 명으로 변경이 된다.


2. 테이블 되살리기

FLASHBACK TABLE [테이블명] TO BEFORE DROP;


3-1. 플래쉬백으로 저장된 테이블 전부 삭제[범위는 해당 계정의 플래쉬백이 됨].

PURGE RECYCLEBIN;


3-1-1. DBA권한으로 DB의 플래쉬백을 모두 비우기.

PURGE DBA_RECYCLEBIN;


3-2. 테이블 DROP시 플래쉬백을 거치지 않고, 바로 삭제하기.

DROP TABLE [테이블명] PURGE;


3-3. 플래쉬백에 있는 특정 테이블 영구 삭제하기.

PURGE TABLE [테이블명];


3-ETC. 이밖에 INDEX, TABLESPACE도 가능하다. 많은 명령이 있으니 관심이 있다면, ORACLE홈페이지에서 보는것도 괜찮지만, 나의 지론은...쓰지도 않는거 공부해봤자 금방 잊어 먹는다는 것! 여기 까지만 해도 충분히 관리 할수 있다는것! ^^;



* 중요! ORACLE에서 아무리 DROP명령을 써도 테이블 스페이스는 줄어 들지 않는다. 이는 플래쉬백을 거치면어 여전히 테이블 스페이스를 오브젝트가 점유 하고 있기 때문이다. 그러므로 필요 없는 테이블은 플래쉬백에서 비워 주도록 하자!