본문 바로가기

IT/Oracle

오라클 리사이클빈 (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을 이용해 복구하는 것이 좋습니다.

반응형