Programming/Oracle
ORACLE TIMESTAMP를 활용한 데이터 복원
patrick610
2020. 6. 23. 00:27
반응형
SMALL
데이터를 운용하다 보면 실수로 DELETE, UPDATE 하는 경우를 종종 겪게 됩니다.
이때 특정 시간 또는 시점으로 되돌릴 수 있는 기능이 Oracle Flashback 기능입니다.
AS OF TIMESTAMP 구문을 활용하여 변경 전 데이터를 복원할 수 있습니다.
■ Flashback을 사용할 수 있는 조건
※ 설정
1. 자동 언두 관리 시스템을 사용해야 합니다.
- UNDO_MANAGEMENT 파라미터를 AUTO로 설정
UNDO_MANAGEMENT = AUTO
2. 이전의 어느 시점까지의 언두(UNDO) 정보를 보유하여 Flashback Query를 수행할 것인지
UNDO_RETENTION 파라미터를 설정해야 합니다.
- ALTER SYSTEM SET UNDO_RETENTION=1200;
설정 확인
- SHOW PARAMETER UNDO;
※ 계정
Flashback 기능을 이용하기 위해서 DBMS_FLASHBACK 패키지에 대한 EXECUTE 권한을
가지고 있어야 합니다.
시스템의 설정, 버퍼의 크기에 따라 복구할 수 있는 시간은 제한적입니다.
(오라클 서버의 메모리 세팅에 따라 달라집니다.)
■ AS OF TIMESTAMP 쿼리 실행
SELECT *
FROM TEST_TABLE // 실행 테이블
AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) // 분 단위 입력
WHERE ID = '1234'; // 조건
위 쿼리를 실행하면 10분 이전의 데이터가 조회됩니다.
단위는 SECOND, MINUTE, HOUR, DAY로 바꿔 쓸 수 있습니다.
시스템의 설정에 따라 복구할 수 있는 시간은 제한적입니다.
반응형
LIST