[ORACLE] Commit 된 데이터 복구 (TIMESTAMP)

실수로 커밋하거나 잘못된 쿼리 적용으로 데이터가 날아갔을때 복구할 방법입니다.

빠른시간안에 복구해야하고(UNDO가 다 차기 전에) 만약 복구에 실패했을 경우를 대비해 중요한 DB라면 매일 백업해두는게 좋을듯 합니다..ㅎ

3시간전 데이터 조회 쿼리

1
2
3
SELECT * 
FROM table_name AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '3' HOUR)
WHERE 조건;
cs

* 시간 단위는 (SECOND, MINUTE, HOUR, DAY)입니다. 

* 최대한 빠른 시간안에 복구하지 않으면 ORA-01555가 발생할 확률이 매우 높아 복구가 힘들어요 ㅠ

조회 된 데이터가 맞다면 다시 복구 하는 방법

 

1
2
3
4
INSERT INTO table_name
    SELECT * 
    FROM table_name AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '3' HOUR)
    WHERE 조건;
cs
반응형