SQL

[Oracle]데이터 날려먹었을때 복구방법

하루종일v 2020. 6. 30. 10:52

오라클에서 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)

 

이렇게 하면 끝입니다!

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

반응형