Oracle 12c R2 버전 이상 복구 방법 입니다.

실수로 시퀀스를 DROP 했을 경우 입니다.

 

— 오후 1시에 drop 시퀀스문을 실행한 경우

 

select * from DBA_SEQUENCES as of timestamp(TO_DATE(‘2023/01/05 12:59:59′,’YYYY/MM/DD HH24:MI:SS’)) ;

 

이렇게 DBA 뷰 에 Flashback 기능을 접목 시켜 수행 하면

 

삭제 이전 시점의 시퀀스 Last number 마지막 숫자를 추출 할 수 있습니다.

 

이 것을 이용해 삭제된 시퀀스명 으로 새로운 시퀀스를  시작하는 숫자를 삭제 시점 시퀀스 마지막 숫자로 하여 만들면 번호가 중복되지 않고 복구가 가능합니다.

 

단 LAST number는 cache 값 만큼 선 확보되어서 중간 번호가 띠어진 상태 입니다.

 

오라클(ORACLE) 데이터를 TIMESTAMP를 사용하여 복구

데이터베이스를 이용하다보면 실수로 데이터를 삭제하거나, 잘못 업데이트를 하는 경우가 있습니다.

commit을 하기전이라면 상관이 없습니다.

하지만 commit을 한 이후에 문제를 파악하여 데이터를 복구해야 하는 경우가 생깁니다.

이럴때 ORACLE 의 TIMESTAMP를 이용하면 데이터를 복구 할 수 있습니다.

TIMESTAMP 사용조건

oracle 9i 이상부터 지원

DB의 설정에 따라서 시간이 오래지난 데이터는 TIMESTAMP로 복구가 불가능합니다.

TIMESTAMP 사용법

단위는 SECOND, MINUT, HOUR, DAY 로 지정해서 사용할 수 있습니다.

SYSTIMESTAMP 에서 설정한 시간을 입력하여 데이터를 보여줍니다.

TIMESTAMP 데이터 쉽게 비교하기

어떤 데이터가 변경이 되었는지 확인할 경우

아래와 같이 비교하시면서 보면 확인하기가 편합니다.

현재 데이터와 비교할 데이터를 UNION ALL로 묶어서 보기

TIMESTAMP 데이터 생성, 수정 방법

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다