[Oracle] 오라클 실수로 지운 데이터 복구 쿼리 (TIMESTAMP)

데이터를 실수로 삭제(DELETE) 또는 수정(UPDATE)을 하고 COMMIT을 했다면 당황하지 말고 TIMESTAMP를 사용하여 이전의 데이터를 조회하여 복구할 수 있다.

오라클 9i Release 2부터 Flashback이라는 기능이 생겼는데, 일종의 휴지통이라고 생각하면 된다. Flashback의 사이즈만큼만 과거 데이터를 보관하고 있으니, 변경이 자주 발생하는 테이블은 복구 가능한 시점이 짧을 수 있다.

 SELECT * 
   FROM test_table AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '10' MINUTE)    
  WHERE id = '1234'

위의 쿼리를 조회하면 10분 이전의 데이터가 조회된다. 

단위는 SECOND, MINUTE, HOUR, DAY로 바꿔 쓸 수 있다.
실수로 지운 데이터 당황하지 말고 바로 복구하세요^^


 

원하는 시점의 시간을 직접 입력하여 변경 전 데이터를 조회할 수도 있다.

 SELECT * 
   FROM test_table AS OF TIMESTAMP(TO_DATE('2021-08-27 13:10:00', 'YYYY-MM-DD HH24:MI:SS'))    
  WHERE id = '1234'

 

 

댓글

Designed by JB FACTORY