DB & SQL

oracle 실수로 지운 commit 된 데이터 복구

puttico 2016. 4. 23. 15:49

데이터 작업중 실수로 데이터를 지우고 commit 했을때 복수할 수 있는 방법이며
디비의 환경설정에 따라 복구 할 수 있는 시간은 차이가 있는 듯함


시간 단위는 second, minute, hour, day 등으로 지정할 수 있으며
시간을 지정하면 삭제되기전의 데이터를 조회할 수 있다.

SELECT * FROM table_name AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE)
    WHERE 조건;


조회된 데이터가 맞다면 다시 복구하자

INSERT INTO table_name
    SELECT * FROM table_name AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE)
        WHERE 조건;