[ORACLE] 오라클 DROP TABLE 복구 처리 방법

실수로 테이블을 삭제 한 경우 테이블 및 데이터 복구하는 방법을 알아볼게요.

저는 오늘 개발서버에서 실수로 drop table을 잘못 날려서 테이블을 날려버렸습니다.

insert,update,delete 쿼리문은 commit 을 하지않으면 rollback으로 복구를 시킬 수 있지만

drop table을 한경우에는 rollback이 되지 않습니다

 

이럴경우

Oracle FlashBack 기능을 활용하면 됩니다.

데이터베이스는 테이블과 연관된 데이터를 바로 삭제처리 하지 않습니다.

바로 삭제처리 하지않은 데이터는 테이블의 이름을 변경하여 관련 오브젝트를

Recyle bin 에 저장을 합니다.

 

실수로 table을 drop 한경우에 당황하지 말고 아래 방법으로 복구하시면 됩니다.

오라클 10g 이상부터 지원하는 Recyclebin은 휴지통 기능이라 생각하시면됩니다.

 

DROP TABLE 데이터 복구방법

1. RECYCLEBIN 쿼리를 조회합니다.

SELECT * FROM RECYCLEBIN;

컬럼 설명

ORIGINAL_NAME : 삭제된 테이블명

OBJECT_NAME : 삭제된 테이블의 OBJECT명

TYPE : 삭제된 타입, TABLE, INDEX

TS_NAME : 소유주

CREATETIME : 테이블생성 시간

DROPTIME : 테이블 DROP 시간

 

 

2. DROP 테이블 복원하기

복원할 테이블의 ORIGINAL_NAME을 확인합니다.

FLASHBACK TABLE "ORIGINAL_NAME" TO BEFORE DROP

예) FLASHBACK TABLE "BIN$UofUBMjOnkDgUOABLqNFXg==$0" TO BEFORE DROP;

 

 

위의 쿼리를 돌리면 DROP한 테이블이 복구된걸 확인하실 수 있습니다.

DROP 되면서 INDEX 까지 같이 삭제되니 INDEX도 같이 복원하시면 됩니다.

실수로 지운 테이블 복구하는 방법을 알아보았습니다.

DROP 문구는 조심히 사용하시기 바랍니다.

 

3. RECYCLEBIN 기능

- RECYCLEBIN 비우기

PURGE RECYCLEBIN; 

- RECYCLEBIN 거치지 않고 바로 삭제( 윈도우 Shift + Del 같은기능)

DROP TABLE 테이블명 PURGE;

 

 

 

 

댓글

Designed by JB FACTORY