개발은 재밌어야 한다
article thumbnail
Published 2023. 1. 30. 23:33
[Oracle] 오라클 데이터 복구 RDBMS
반응형

데이터를 실수로 삭제를 해버렸다...

오라클에서는 데이터를 삭제 또는 수정후 COMMIT했을때 Oralce의 Flashback을 통해 TIMESTAMP를 사용해서 이전의 데이터를 조회해서 복구할 수 있는 기능이 있다(해당 기능은 오라클 9i 버전 이상부터 지원)

 

주의할점은 Flashback은 Undo Data를 사용하기 때문에 undo_retention 파라미터값에 의해 보존되는 시간이 정해져있습니다. (기본값 900초)

 

undo_retetion 조회 쿼리

select * from v$parameter where name = 'undo_retention';

 

 

사용방법

SELECT *
FROM [TABLE 명] AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE) -- 단위는 SECOND, MINUTE, HOUR, DAY
WHERE [조회조건]

 

예를들어 실수로 ITEM_HISTORY의 데이터를 모두 DELETE후 커밋을 해버렸다.

이 경우 10분전에 ITEM_HISTORY 테이블의 데이터를 조회할 수 있다.

SELECT *
FROM ITEM_HISTORY AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '10' MINUTE)

만약 10분전의 데이터로 테이블을 복구하고 싶다면 아래와 같이 사용하면 된다.

INSERT INTO [TABLE] SELECT * FROM [TABLE] AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '10' MINUTE); -- 10분이전 데이터로 복구

 

반응형
profile

개발은 재밌어야 한다

@ghyeong

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!