본문 바로가기

Oracle/SQL

SQL - Flashback Version Query (데이터 변경내역 이력 확인)

특정테이블의 데이터가 그동안 어떻게 변경되어 왔는지 그 이력정보를 확인할때 사용하는기능

9:48 ~ 지금현재까지의 EMP table 의 변경을 확인하는 쿼리

select ename, sal, job, versions_operation
from emp
versions between timestamp to_timestamp('21/11/29 09:48:16', 'RR/MM/DD HH24:MI:SS')
AND MAXVALUE
where ename = 'KING'
order by versions_starttime nulls first;

→ MAXVLAUE = 현재시간

→ versions_operation 의 u 는 update , d 는 delete 이다.

십분전으로 복구!할것

alter table emp enable row movement;

→ enable 로 변경

flashback table emp to timestamp to_timestamp('21/11/29 09:48:16', 'RR/MM/DD HH24:MI:SS');

→ flashback 해주기

select ename sal, job
from emp
where ename = 'KING';

→ 복구된걸 확인 할 수 있다.