오라클에서 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)
이렇게 하면 끝입니다!
데이터 정상적으로 복구됐는지 확인만 더 해주시면 됩니다.
반응형