본문 바로가기
Dev/sql_db

[ORACLE] TIMESTAMP로 DELETE, UPDATE 후 COMMIT 한 데이터 복구하는 방법

by RoundRyun 2019. 12. 10.

만약

 

DELETE FROM USER WHERE SEQ= '123'; 

COMMIT;

 

위의 구문과 같이, 데이터를 실수로 삭제(delete, truncate는 불가) 하고 commit하였을때 다시 복원시켜야 하는 상황이라면, Oracle Flashback 기능을 통해 as of timestamp 구문을 사용하여 삭제 전의 데이터를 조회하여 복구 할 수 있다. 

 

사용법은 아래와 같다.

 

INSERT INTO USER
SELECT * 
FROM USER 
AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) 
WHERE SEQ= '123' ; 

 

이 문법으로 삭제되거나 업데이트된지 10분내의 데이터를 다시 삽입 가능하다.

저기서 INTERVAL뒤의 시간은 변경 가능하며, 단위는 SECOND, MINUTE, HOUR, DAY로 바꿔 쓸 수 있다.오라클 9i(RELEASE 2이상) 이후부터 지원한다.

 

출처

https://goddaehee.tistory.com/56 [갓대희의 작은공간]
https://unabated.tistory.com/entry/오라클-DELETE-UPDATE-후-COMMIT-한-데이터-복구하는-방법 [랄라라]