[불완전 복구 (Incomplete Recovery) - 논리적 장애 복구하기]
- 장애가 발생했을 경우 장애가 발생한 과거의 특정 시점까지만 복구하는것 (현재시점까지 복구X)
- 모든 Data File 을 장애가 발생하기 전에 백업받았던 것으로 전부 복원
- Redo Log File과 Control File은 복구를 수행하는 현재시점의 것을 사용해야 한다.
- Data File만 복원하여 Archive log file을 적용시켜 장애 직전시점까지 복구함
- 잘못된 update 수행 후 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. DB 종료후 Full backup 수행
3. 테이블 생성 -> 데이터 입력 -> commit : 데이터가 존재하는 테스트용 테이블 생성
- 데이터가 존재하는 시간 확인하여 데이터가 존재했던 시간으로 복구 하는 테스트
4. 잘못된 update를 수행 -> commit 수행하여 장애 발생시킴
- commit이 수행되었기 때문에 rollback 작업을 해도 데이터가 되돌려 지지 않음
5. DB정지후 복구
- 원본 파일들을 건드리지 않기 위해 임시 디렉토리를 생성하여 복구에 필요한 파일들 복사
- 모든 Data File을 장애가 발생하기 전에 백업해 두었던 파일을 임시경로로 복원
- Control file과 redo log file은 복구하는 현재 시점에 사용하고 있는 파일을 임시경로로 복사
6. parameter file 수정하여 control file경로 변경해줌
SQL > !vi $ORACLE_HOME/dba/inittestdb.ora --파라미터 파일 수정하여 control file임시경로로 설정
*.control_files='/data/temp/control01.ctl'
7. mount상태로 open하여 data file, redo log file의 설정 변경작업을 수행해야함
8. Data File의 위치를 복구 경로로 변경
9. Redo Log File의 위치를 복구경로로 변경
10. 복구 후 open
SQL > recover database until time '복구원하는 시간' ;
SQL > alter database open RESETLOGS;
- 현재 Data file은 백업파일, control file과 redo log file은 현재시점의 파일이기 때문에 SCN이 맞지 않으므로 open불가
- RESETLOGS 옵션을 사용하여 특정시점으로 open
'oracle > [Recovery] Data File' 카테고리의 다른 글
[Data File 장애복구-DDL장애] drop table 명령에 의해 삭제된 Table 복구 (0) | 2014.11.03 |
---|---|
[Data File 장애복구-DML장애] 필요한 파일만 복원후 복구 (delete->commit 수행하여 장애발생) (0) | 2014.11.02 |
[Data File 장애복구] 백업파일이 없는 상태에서의 복구 (0) | 2014.10.31 |
[Data File 장애복구] DB 정지 후 복구 - OFFLINE 안되는 tablespace 장애 (Archive log mode) (0) | 2014.10.31 |
[Data File 장애복구] DB 무정지 후 복구 - OFFLINE 되는 tablespace 장애 (Archive log mode) (0) | 2014.10.30 |
댓글