flashback 쿼리 사용방법
오라클 10g 이상버전에서 가능
flashback이 설정되어 있는 DB의 경우 아래와 같이 commit 시점 이전의 데이터를 조회하여 복원이 가능하다.
-- 특정시점 데이터 복원 SELECT * FROM employee AS OF TIMESTAMP TO_TIMESTAMP('2003-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS') WHERE name = 'JOHN'; INSERT INTO employee (SELECT * FROM employee AS OF TIMESTAMP TO_TIMESTAMP('2003-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS') WHERE name = 'JOHN'); -- 60분 이전 데이터 복원 CREATE VIEW hour_ago AS SELECT * FROM employee AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '60' MINUTE); INSERT INTO employee (SELECT * FROM employee AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '60' MINUTE)) MINUS SELECT * FROM employee); -- 특정시간 사이의 데이터 확인 SELECT A.* , VERSIONS_STARTTIME, VERSIONS_ENDTIME, VERSIONS_XID, VERSIONS_OPERATION FROM employee VERSIONS BETWEEN TIMESTAMP TO_TIMESTAMP('2015-03-18 14:35:00', 'YYYY-MM-DD HH24:MI:SS') AND TO_TIMESTAMP('2015-03-18 14:45:00', 'YYYY-MM-DD HH24:MI:SS') A WHERE name = 'JOHN' ORDER BY VERSIONS_ENDTIME;
최신 댓글