티스토리 뷰
ORACLE DROP TABLE 명령으로 삭제한 테이블 복구하기
👉 Oracle은 10g 부터 휴지통(Recyclebin)을 제공
👉 DROP TABLE 명령으로 삭제된 테이블은 Recyclebin에 저장되며 복구가 가능
1. Recyclebin이란
👉 Oracle 10g부터 휴지통(Recyclebin) 이라는 것이 존재하고 이전 버전에서 DROP 명령이 해당 객체를 바로 삭제한 것에 반해, 이제는 삭제된 객체들는 휴지통에 들어가게 된다.
👉 따라서, 휴지통에 들어있는 객체들은 어느때나(휴지통이 비워지기 전까지는) 복구될 수 있다.
👉 Oracle의 Recyclebin에 있는 Objects는 영구히 제거되기 전까지는 Disk상에서 공간을 차지하기 때문에, DROP 한 만큼 User에게 할당된 Quota에 여유가 생기거나 하지 없습니다.
👉 Recyclebin은 Schema 및 Tablespace에 종속되어 있기 때문에, 어떤 Schema가 Drop될 때에, 그 Schema의 Recyclebin도 깨끗하게 Clear됩니다.
👉 어떤 Rablespace가 Drop되는 경우, 해당 Tablespace상에서 Create된 후 Drop되어 Recyclebin에 저장되어 있던 Objects들도 깨끗하게 Clear됩니다.
2. Recyclebin 기능 활성화
ALTER SESSION SET RECYCLEBIN=ON; 👈 Recyclebin 기능 활성화
ALTER SESSION SET RECYCLEBIN=OFF; 👈 Recyclebin 기능 비활성화
3. Recyclebin 조회
👉 DROP TABLE과 같이 DDL 명령으로 삭제된 정보를 조회할 수 있으며 ORIGINAL_NAME과 OPERATION을 활용하여 복구가 가능
SELECT *
FROM RECYCLEBIN;
4. Recyclebin 비우기
PURGE RECYCLEBIN
5. DROP 테이블 복구하기
FLASHBACK TABLE 테이블명 TO BEFORE DROP
6. Recyclebin에 저장하지 않고 Table Drop 하기(Windows의 Shift + Delete)
👉 많은 양의 데이터를 지울때 Recyclebin이 Full 될 수있으니 아래와 같이 사용
DROP TABLE 테이블명 PURGE
7. PURGE 없이 테이블 삭제했을 경우 완전히 지우기
PURGE TABLE 테이블명
참고자료
Flashback Drop (Recycle Bin)에 대해서…
댓글