본문 바로가기

Paul Work/Oracle

Oracle10G에서 Delete 혹은 Drop 후 Commit 까지 해버렸을 때 복구 법

insert into  테이블명
select * from  테이블명 as of timestamp(systimestamp - interval'30'minute)

아래와 같이 데이터를 삭제한 테이블에 가서  아래의 SQL 문을 실행하여 본다.
select * from  테이블명 as of timestamp(systimestamp - interval'30'minute)

그러면 지금부터 30분전 까지의 데이터가 보여질단다...

정확히 몇시간 이전까지의 데이터를 보여주는지는 확인하여 보지는 못하였지만 10분 내외에서 테스트 했을때는
잘 되는것 같다.

울면서 rollback 100번 때리지 말고 저걸로 한번 해보자...



테이블 완전 삭제하기 (휴지통에 저장되지 않음)
DROP TABLE 테이블명 CASCADE CONSTRAINT purge;

휴지통에 있는 테이블 복원
FLASHBACK TABLE 테이블명 TO BEFORE DROP;

컬럼명 변경
ALTER TABLE 테이블명 RENAME COLUMN 변경전 컬럼명 TO 변경후 컬럼명;