반응형

새로 생성한 데이터베이스에 여러명의 개발자가 달라붙어서 작업을 하다보니...

 

어느새 이상한 찌꺼기로 보이는 것들이 생기곤 한다.

 

sql> select * from tab;

...

...

BIN$+JhRwRSHQRm8CPHbIPcAhg==$0
BIN$+dyK/iSeSm2xC63JjCCnWQ==$0
BIN$+iZrUVW+QK6GJf6AU54nDQ==$0
...

 

이런 정상적이지 않은 놈들이 보인다.

 

토드 스키마브라우져에서 뒤져보니

 

My Schema > Constrants 에 들어있는 놈들이다.

 

자세히 보니 이미 드랍된 테이블의 인덱스들 인듯

 

drop를 시도하면...

 

ORA-38301: 휴지통에 있는 객체에 대해 DDL/DML을 수행할 수 없음

 

이라고 나온다... 웬 휴지통 -.,ㅡa 이거 뭥미...

 

결국 ORA-38301로 검색을 해보니

 

오라클 10g에서는 휴지통(recyclebin) 이라는 것이 존재하는데

 

drop 명령으로 삭제한 객체들이 바로 삭제되지 않고 여기에 담겨있다고 한다.

 

휴지통에 들어있는 객체들은 아래의 상황 전까지 휴지통에 보관된다고 한다.

 

- purse 명령으로 영구히 삭제

- undrop명령으로 drop객체 복구

- 테이블스페이스 (휴지통)공간이 부족할때.

- 테이블스페이스가 extend될때

 

 

휴지통에 들어있는 객체들 보기

 - user_recyclebin

 - dba_recyclebin

 

휴지통 비우기

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


휴지통의 객체 복구
flashback table 휴지통내의 이름 to before drop;

휴지통에 넣지 않고 drop
drop table 테이블명 purge;

출처 : http://cafe.daum.net/oddtip/FbCl/187?docid=1CBe5|FbCl|187|20080808184442&q=ORA-38301&srchid=CCB1CBe5|FbCl|187|20080808184442

반응형

+ Recent posts