오라클 리사이클빈 (Recycle Bin) 개념과 활용

  데이터베이스에서 실수로 데이터를 삭제하는 것은 치명적인 문제가 될 수 있습니다. 오라클(Oracle) 데이터베이스에서는 이러한 실수를 방지하기 위해 리사이클빈(Recycle Bin) 기능을 제공합니다.

리사이클빈이란?

오라클의 리사이클빈(Recycle Bin)은 테이블을 DROP 했을 때 바로 삭제되지 않고, 복구할 수 있도록 저장하는 기능입니다. 마치 운영체제의 휴지통과 유사한 개념으로, 테이블을 삭제하더라도 필요할 경우 다시 복원할 수 있습니다.
 지원 버전
 • 오라클 10g부터 지원
 • SYSTEM, SYSAUX, TEMP 테이블스페이스에서는 지원되지 않음

리사이클빈 동작 방식

✔ 테이블 삭제 시 리사이클빈에 저장

DROP TABLE employees;

위 명령어를 실행하면 테이블이 완전히 삭제되는 것이 아니라 리사이클빈으로 이동합니다

SELECT * FROM user_recyclebin;

✔ 리사이클빈 확인

SELECT * FROM user_recyclebin;

출력 예시:

OBJECT_NAME                    ORIGINAL_NAME  TYPE  
------------------------------ -------------- ------  
BIN$5lklh2h38g5$0             EMPLOYEES      TABLE

• OBJECT_NAME : 리사이클빈에서 테이블이 임시로 부여받은 이름
• ORIGINAL_NAME: 원래 테이블 이름

✔ 테이블 복구 (FLASHBACK)

FLASHBACK TABLE employees TO BEFORE DROP;

위 명령어를 실행하면 employees 테이블이 삭제 이전 상태로 복구됩니다.



리사이클빈에서 개별 테이블 영구 삭제

리사이클빈에서 특정 테이블을 완전히 삭제하고 싶다면 PURGE 명령을 사용하면 됩니다.

✔ 특정 테이블 완전 삭제

PURGE TABLE employees;

이렇게 하면 employees 테이블이 리사이클빈에서도 삭제되어 복구할 수 없게 됩니다.

✔ 리사이클빈 전체 비우기

PURGE RECYCLEBIN;

모든 삭제된 객체를 완전히 제거합니다.

✔ 시스템 전체 리사이클빈 비우기 (DBA 권한 필요)

PURGE DBA_RECYCLEBIN;

리사이클빈 설정 관리

리사이클빈 기능은 기본적으로 활성화되어 있지만, 필요에 따라 비활성화할 수도 있습니다.

✔ 리사이클빈 기능 비활성화

ALTER SESSION SET recyclebin = OFF;


세션 단위로 리사이클빈을 비활성화합니다.

ALTER SYSTEM SET recyclebin = OFF;

시스템 전체에서 리사이클빈을 비활성화합니다.

✔ 리사이클빈 기능 활성화

ALTER SYSTEM SET recyclebin = ON;

비활성화했던 리사이클빈 기능을 다시 활성화합니다.


오라클의 리사이클빈 기능은 실수로 삭제한 데이터를 복구할 수 있는 중요한 안전장치입니다. 하지만 리사이클빈이 무한정 저장되는 것이 아니므로, 적절한 관리가 필요합니다. 실무에서는 주기적으로 PURGE RECYCLEBIN을 실행하여 불필요한 데이터를 정리하고, 필요한 데이터는 FLASHBACK TABLE을 이용해 복구하는 것이 좋습니다.

댓글 쓰기

다음 이전

POST ADS 2