Patrick's 데이터 세상

ORACLE TIMESTAMP를 활용한 데이터 복원 본문

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
Comments