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해서 망했다 생각하실 때 이 쿼리로 당황하지 말고 바로 데이터 복구하시길 바랍니다.

반응형

+ Recent posts