728x90
데이터들을 실수로 DELETE, UPDATE 등을 하여 잘못 COMMIT하여 난감하실때가 많으실 겁니다.
저도 이러한 사항을 많이 겪어봤고 많이 혼났을 때가 있었네요.
이럴 때 오라클에서 데이터 복구를 위해 지원해주는 것이 있습니다.
TIMESTAMP를 통한 복구 쿼리입니다.
SELECT [컬럼] FROM [테이블] AS OF TIMESTAMP 함수 |
예시로는 아래와 같습니다.
예시1) 시간 전 조회
SELECT * FROM TEST AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) |
이렇게 조회하면 10분 이전의 데이터를 조회할 수 있습니다.
뒤에 단위는 SECOND, MINUTE, HOUR, DAY로 바꿔 쓸 수 있습니다.
예시2) 특정 날짜 조회
SELECT * FROM TEST AS OF TIMESTAMP(TO_DATE('20210316000000', 'YYYYMMDDHH24MISS')) |
이렇게 조회하면 2021년 03월 16일에 테이블 데이터를 조회할 수 있습니다.
또한 삭제된 시간도 적절하게 조절해서 검색가능 합니다.
예시3) INSERT SELECT를 통한 데이터 복구
INSERT INTO [테이블] SELECT [컬럼] FROM [테이블] AS OF TIMESTAMP 함수 |
SELECT INSERT 쿼리로 간단히 테이블 삭제 후 데이터 복구 하시면 됩니다.
데이터변경 하고 COMMIT해서 망했다 생각하실 때 이 쿼리로 당황하지 말고 바로 데이터 복구하시길 바랍니다.
반응형
'DB > ORACLE' 카테고리의 다른 글
[ORACLE]테이블(TABLE) 컬럼(COLUMN) Procedure, Function 검색&조회 (0) | 2021.08.10 |
---|---|
ORA-04031: unable to allocate nn bytes of shared memory (0) | 2021.06.17 |
[ORACLE] Instance & Service 용어 개념정리 (0) | 2021.06.03 |
ORA-04021: 객체의 잠금 대기중 시간이 초과됐습니다 (2) | 2021.04.14 |
프로시저(Procedure) 사용법 및 예시 (0) | 2021.03.25 |