Oracle DB에서 "BIN$"으로 시작하는 테이블

Hoplin·2022년 11월 28일
0

테이블 목록을 출력했을때 뭔가 이상한 이름의 테이블을 볼 수 있었다.

select * from tab;


BIN$ 이라는 이름으로된 테이블이 생성되어있는것을 볼 수 있다. 하지만, 이는 필자가 생성한 테이블이 아니다. 찾아보니 이는, Oracle Database가 10g 버전 이후에 새로 추가한 "Recycle Bin"이라는 기능이다. 이는 DDL(Data Definition Language) 중 DROP 명령어를 사용한 이후에 테이블은 완전히 삭제되는것이 아닌, "Recycle Bin"이라는 논리 컨테이너로 들어가게 된다고 한다.

"Recycle Bin" object를 보기위해서는 아래 명령어를 입력한다

show recyclebin;

"Recycle Bin" 객체는 flashback 명령어를 통해서 복구할 수 있다.

flashback table "BIN$l3eyH/awSDOLmL9FRwScnA==$0" to before drop;

만약에 기존 테이블 명이 아닌 다른 이름으로 복구하고 싶은 경우에는 아래와 같이 rename to 를 덧붙이면 된다.

flashback table "BIN$l3eyH/awSDOLmL9FRwScnA==$0" to before drop rename to (테이블 이름);

"Recycle Bin"객체를 삭제하기 위해서는 purge 명령어를 사용한다. "Recycle Bin" 내 모든 객체를 삭제하려면

purge recyclebin;


만약 특정 "Recycle Bin"객체만 삭제하려면

purge table "(bin객체이름)";

와 같이 작성한다

profile
더 나은 내일을 위해 오늘의 중괄호를 엽니다

0개의 댓글