본문 바로가기

프로그램

[ORACLE]오라클 COMMIT 된 DML 조회 및 복구 방법

반응형


오라클 COMMIT DML 조회 및 복구 방법

 

오라클의 FLASH BACK 기능 이라고 함


설정보기

sql> show parameter undo;

undo_management

undo_retention

undo_tablespace

 

DEFAULT 900초 라고 함

alter system set undo_retention = 1500 ; '          --1500(25)

를 통해 늘릴 수 있다고 함


15분 전 테이블 조회 

SELECT *

  FROM TEST

 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '15' MINUTE)

WHERE USER_ID = 'ITDI' ;


MINUTE

HOUR

DAY

Month

Year

(month, year는 입력은 가능하나 스냅샷 없다고 오류 발생함)

 

일단 이를 통해 당시 데이터를 조회 후 임시 테이블에 저장

INSERT INTO TEMP

SELECT *

  FROM TEST

 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '15' MINUTE)

WHERE USER_ID = 'ITDI' ;

  

그 후 잘못 commit된 것을 찾아서 원복 시키면 될 듯 함


참고 url

http://www.itdi.co.kr/onuri/bbs/board.php?bo_table=04_2&wr_id=157

http://dearhwan.egloos.com/viewer/4092555

 

 

추가로 찾아본 것은 다음의 VIEW

select *

from FLASHBACK_TRANSACTION_QUERY

;

 

Commit 실행된 시점과 테이블 명, SQL문을 조회할 수 있음

(범인 찾을 때 사용하면 유용할 것 같음)


참고 url

http://lovedb.tistory.com/42