Oracle Noarchive Log Mode에서의 복구
중요한 데이터 파일(system01.dbf)이 삭제된 시나리오
- Database Mode : NoArchive Log Mode
- Database 상태 : System Tablespace의 데이터 파일이 삭제 되었으므로 Database가 Shutdown된 상태
- 백업 : 2008년 3월20일 오전 11시에 Cold Backup 수행
- 장애 발생 : 2008년 3월20일 오전 11시 30분 system01.dbf 데이터 파일이 미디어 장애로 인해 손실되었고 데이터베이스가 Shutdown된 상태
- 복구 계획 : 현재 system01.dbf에는 중요한 데이터 정보가 들어 있으므로 복구가 필요 하고, NoArchive Log Mode이므로 동기화 정보를 맞추기 위해 모든 데이터 파일을 Restore한 후 백업본 이후의 변경사항은 수동으로 적용해 준다.
복구순서
- 1. Database를 Open한다. (Mount 단계까지만 수행됨)
- 2. System01.dbf가 유실된 것을 확인하고 모든 데이터 파일을 restore 한다.
- 3. Database를 open 한다
- 4. 변경사항을 적용한다.
Database Mode 확인
각 파일들의 위치를 확인
백업 수행 (SHUTDOWN 후 백업 수행)
system01.dbf 파일 삭제 장애 발생
이전의 복구 본으로는 변경사항을 적용할 수 없다는 것을 확인하기 위해서 테이블을 생성한 이후 system01.dbf 파일을 삭제 하는 장애를 발생
파일을 삭제한다고 해서 바로 Database가 종료 되지 않고, system 데이터파일에 어떤 I/O가 일어났을 때 Database가 종료 된다.
DB Startup
MOUNT단계에서 OPEN하기 위해서 CONTROLFILE에서 정보를 읽어들여, 데이터파일들의 정보를 인식하고 OPEN하는 중 system01.dbf가 존재하지 않으므로 OPEN되지 않고, MOUNT 단계꺼지만 올라온다.
현재의 에러 상황을 확인
$DATAFILE_HEADER 뷰를 통해 현재의 에러 상황을 확인
데이터 복구
기존의 백업본을 이용하여 데이터를 복구한 후 변경 백업 이후의 변경분을 적용 한다
중요하지 않는 데이터 파일(temp01.dbf)이 삭제된 시나리오
- 백업 : 2008년 3월20일 오전 11시에 Cold Backup 수행
- Database 상태 : OPEN 상태
- 장애 발생 : 2008년 3월20일 오전 11시 30분경 temp01.dbf 데이터 파일이 손실
- 복구 계획 : 현재 temp01.dbf에는 정렬을 위한 임시 공간 이므로 데이터베이스를 정상적인 상태로 만들기 위해 다른 Temp File을 생성한 후 기존의 temp01.dbf는 삭제 한다.
장애 사항 발생
temp파일을 확인 한 후 temp파일을 삭제 한다. (장애 사항 발생)
에러를 확인
TEMP 공간이 필요한 작업을 수행, 에러를 확인
복구
다른 데이터 파일인 temp02.dbf를 생성한 후 기존의 temp01.dbf 는 삭제 한다
에러가 발생한 쿼리 실행
위에서 실행 쿼리문을 다시 한번 실행한다. 정상적으로 실행되는 것을 확인 할 수 있다.