DB 작업 중 실수로 데이터를 삭제한 후 Commit을 진행했다. 다행히 오라클에서는 Commit후 복구할 수 있는 방법이 존재한다.
오라클은 Undo Tablespace에 커밋이후로부터 일정시간동안 임시로 테이블을 저장하고 있다. 유지되는 시간은 undo table 속성에 지정가능하다. 시스템 설정에 따라 복구할 수 있는 시간이 다르므로 확인해야한다.
커밋 후 특정시간 전 데이터를 보고 싶다면 as of timestamp 를 이용하면 된다.
단위는 SECOND, MINUTE, HOUR, DAY가 가능하다.
select * from 테이블명 as of timestamp(systimestamp-interval '30' minute);
DB복구로 사용한 쿼리
insert into codilist
(select * from codilist as of timestamp(systimestamp-interval '30' minute) where iNum>20);
insert into codiheart
(select * from codiheart as of timestamp(systimestamp-interval '30' minute) where iNum>20);
insert into hashtag
(select * from hashtag as of timestamp(systimestamp-interval '30' minute) where iNum>20);
'RDB > Oracle' 카테고리의 다른 글
[Oracle] WITH AS 구문 (0) | 2020.07.08 |
---|---|
[오라클] JAVA와 ORACLE의 연동 (0) | 2019.01.30 |
[오라클] 불완전복구,log파일복구 (0) | 2019.01.30 |
[오라클] 완전복구, 불완전복구-시간기반,취소기반 (0) | 2019.01.29 |
[오라클]INDEX REBUILD, 지연제약조건, 사용자/PROFILE/PRIVILEGE/ROLE 관리, SQLLDR (0) | 2019.01.28 |