데이터베이스에서 실수로 데이터를 삭제하는 것은 치명적인 문제가 될 수 있습니다. 오라클(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을 이용해 복구하는 것이 좋습니다.
'IT > Oracle' 카테고리의 다른 글
Oracle SQLException : ORA-01555: snapshot too old (0) | 2025.05.02 |
---|---|
오라클 파티션 테이블 삭제 및 정리 (0) | 2025.05.02 |
오라클 - shrink 기법 (0) | 2025.04.11 |
오라클 - 소수점을 저장하는 데이터 타입 (3) | 2025.03.30 |
오라클 - 등록된 Job 및 프로시저 호출 조회 (5) | 2025.03.18 |