- 잘못된 delete 수행 후 commit >> 필요한 파일만 복원 후 복구
- 아래 실습은 pfile로 진행
1. 현재 사용하고 있는 Data File, Redo Log File, Control File 확인
SQL > select name from v$controlfile;
SQL > select name from v$datafile;
SQL > select member from v$logfile;
2. 백업 (close backup)
DB 종료 -> 백업 -> DB open
3. users 테이블 스페이스에 테스트용 테이블 생성후 데이터 입력
4. 데이터가 존재하는 시간 확인
SQL > select to_char(sysdate, 'YYYY-MM-DD:HH24:MI:SS') from dual ;
- 테스트이기 때문에 복구할 시간을 검색하여 복구시점을 알아내지만 현장에서는 복구시점을 알기위해서 log miner 사용해야함
5. 테스트할 테이블을 delete 시켜 장애 발생시킴.
6. 임시디렉토리를 만들어 복구를 수행한다.
- 원본데이터를 보존하기 위해서 임시경로를 만들어 복사한후 복구 수행
- control file의 경로를 임시경로로 지정
7. 복구에 반드시 필요한 파일만 임시경로로 복사
- 복구작업에 반드시 필요한 data file : system01.dbf, sysaux01.dbf, undotbs01.dbf
- 장애 데이터가 들어있는 data file : 실습에서는 users01.dbf
8. control file과 redo log file은 현재 사용중인 파일로 임시 복구 경로로 복사
9. mount 상태로 open
SQL > starup mount;
10. data file의 경로를 복구 경로로 위치 변경
SQL > alter database rename file '이전 data file 경로' to '복구경로';
- example01.dbf는 복구하지 않기 때문에 복구경로로 복사도 하지않고 경로변경도 하지 않음 >> offline drop후 open
11. 복구에 필요없는 example01.dbf 데이터 파일을 offline drop
SQL > alter database datafile '데이터파일경로' offline drop;
12. redo log file의 경로를 복구 경로로 위치 변경
SQL > alter database rename file '기존 리두로그 경로' to '복구경로';
13. 복구 후 확인
SQL > recover database until time '복구할 시간';
SQL > alter database open resetlogs;
'oracle > [Recovery] Data File' 카테고리의 다른 글
[Data File 장애복구-DDL장애] truncate table 명령에 의해 삭제된 Table 복구 (0) | 2014.11.03 |
---|---|
[Data File 장애복구-DDL장애] drop table 명령에 의해 삭제된 Table 복구 (0) | 2014.11.03 |
[Data File 장애복구-DML장애] 임시경로 사용하여 복구 (update->commit 수행하여 장애발생) (0) | 2014.11.02 |
[Data File 장애복구] 백업파일이 없는 상태에서의 복구 (0) | 2014.10.31 |
[Data File 장애복구] DB 정지 후 복구 - OFFLINE 안되는 tablespace 장애 (Archive log mode) (0) | 2014.10.31 |
댓글