만약
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-한-데이터-복구하는-방법 [랄라라]
'Dev > sql_db' 카테고리의 다른 글
관계형 데이터베이스/ SQL/ (0) | 2019.11.13 |
---|---|
[oracle] with절 ( with as) 사용하여 서브쿼리로 조인절과 join하는법 (0) | 2019.11.12 |