[ORACLE] delete or update 후 commit 한 데이터 복구하기

2019. 8. 6. 15:05개발나들이/database

일단 데이터를 복구하기 전에 기본적인 설정값을 확인합니다.


oracle을 cmd 창으로 열고 sqlplus 계정명/비밀번호 을 통해 관리자 계정으로 접속합니다. 이후 cmd 창에 


SHOW PARAMETER UNDO;


을 입력하면 undo_management, undo_retention , undo_tablespace 총 3가지 항목이 조회됩니다.


이 중에서 신경써야 할 것은 undo_retention 값입니다. 이 항목이 update나 delete 후 commit을 했을 때부터 value 값에 따라 데이터를 임시


로 저장하게끔 해줍니다. 


undo_retention 의 value 는 기본 값은 900  이고 이는 15분입니다. ( 900/60 = 15) 저는 이걸 1500으로 바꿔놓았네요.


value 값 변경방법은 ALTER SYSTEM SET UNDO_RETENTION = 값 입니다.


이렇게 셋팅값을 먼저 확인한 이후부턴 다음과 같은 방식으로 delete나 update 된 데이터를 조회할 수 있습니다.


SELECT * FROM TABLE AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL '15' MINUTE)


이를 활용하여 select insert 등의 방식으로 commit 이후의 데이터를 복구할 수 있습니다.