회사 개발 정리

[오라클 Oracle] 플래시백(FlashBack)

inkyoung 2023. 3. 10. 11:43

1. 플래시백(FlashBack)이란?

* 과거 일정시점의 데이터를 조회할 수 있는 기능(오라클 9i부터 지원)
* 커밋을 완료한 데이터도 조회 가능
* 무한대의 과거 시점 조회는 불가능(undo 영역에 남아있어야 조회처리가 가능)
- init.ora -> undo_retention 설정(디폴트: 10800(3시간))

 

2. 플래시백 사용 방법

--30분 이전의 해당 테이블 데이터 조회
SELECT *
  FROM CM_PRG_MST AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '30' MINUTE)
 WHERE PRG_ID = 'OD014'
 
--3시간 이전의 해당 테이블 데이터 조회
SELECT *
  FROM CM_PRG_MST AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '3' HOUR)
 WHERE PRG_ID = 'OD014'

--1일 이전의 해당 테이블 데이터 조회
SELECT *
  FROM CM_PRG_MST AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' DAY)
 WHERE PRG_ID = 'OD014'
 
--특정 시간의 해당 테이블 데이터 조회
SELECT *
  FROM CM_PRG_MST AS OF TIMESTAMP TO_TIMESTAMP('20190309120900','YYYYMMDDHH24MISS')
 WHERE PRG_ID = 'OD014'

 

3. Undo가 가득 차서 조회가 불가능한 경우

* ORA-01555: snapshot too old 에러가 발생하며 조회 불가