Oracle에서 삭제된 테이블 또는 테이블 레코드를 복구하는 방법
기사 분류: 데이터베이스
하나: 테이블 복구
실수로 삭제된 테이블의 경우 PURGE 영구 삭제 옵션을 사용하지 않는 한 Flash Back 영역에서 복구할 가능성이 높습니다. 일반적인 단계는 다음과 같습니다.
1. 플래시백에서 삭제된 테이블 쿼리
휴지통에서 * 선택
2. 테이블 복구 실행
flashback table tb to drop before drop, 여기서 tb는 복원하려는 테이블의 이름을 나타냅니다.
2: 테이블 데이터 복구
실수로 삭제된 테이블 레코드의 경우 truncate 문이 없는 한 트랜잭션 커밋 시간에 따라 복원하도록 선택할 수 있습니다.일반적인 단계는 다음과 같습니다.
1. 쿼리를 위한 테이블 이름, 트랜잭션 제출 시간 및 UNDO_SQL과 같은 필드를 제공하는 flashback_transaction_query 보기의 첫 번째 쿼리.
예: select * from flashback_transaction_query where table_name='TEST';
2. 테이블 레코드 복구 실행
일반적으로 최초 시간에 따라 질의를 수행하며, 질의문 모드는 select * from tb as of timestamp to_timestamp(time,'yyyy-mm-dd hh24:mi:ss'), tb는 테이블명을 의미하며, 시간은 특정 시점을 나타냅니다.
如select * from scott.test as of timestamp to_timestamp('2009-12-11 20:53:57','yyyy-mm-dd hh24:mi:ss');
데이터가 있는 경우 복구가 매우 간단합니다. 명령문은 flashback table tb to timestamp to_timestamp(time,'yyyy-mm-dd hh24:mi:ss');
타임스탬프에 대한 플래시백 테이블 scott.test to_timestamp('2009-12-11 20:47:30','yyyy-mm-dd hh24:mi:ss');