본문 바로가기
Database

오라클 DELETE, UPDATE 후 복구하기

by 전재훈 2019. 2. 14.
반응형

오라클에서 DELETE나 UPDATE 후에 COMMIT을 잘못할때가 있습니다.

그럴때에는 아래처럼 대처해주면됩니다.


1. DB 설정 확인

- 오라클 관리자로 커맨드 접속

-  SHOW PARAMETER UNDO




여기서 undo_retention 은 update나 delete가 아닌 commit을 하였을때부터 경과한 초까지 저장한다는 뜻이다.

예를 들어 900 / 60 = 15분 이다.

이 시간은 alter system set undo_retintion = 1800 으로 변경이 가능하다.


2. 복구하기

- 15분 전의 데이터 조회하기 (원하는 시간으로 바꿔서 조회가 가능하다)

  SELECT * 

  FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '15' MINUTE)

- 현재 테이블 백업 (모든 작업에 백업은 필수입니다!!!)

- DELETE 테이블명

- INSERT INTO 테이블명

  SELECT * 

  FROM 테이블명 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '15' MINUTE)


이렇게 하면 끝입니다!

데이터 정상적으로 복구됐는지 확인만 더 해주시면 됩니다.

반응형

댓글