본문 바로가기
oracle/[Recovery] Redo Log File

[Redo Log File 장애] Current 그룹 삭제 -> DB Shutdown abort로 종료됨(backup 없음, Archive log 없음)

by #moonyz 2014. 11. 6.

Current 그룹 삭제되고 Shutdown abort로 종료 (No archive mode, Backup File 없음) [관련에러코드]

ORA-01547 : warning : RECOVER succeeded but OPEN RESETLOGS would get error below

ORA-00308 : cannot open archived log....

ORA-01194 : file 1 needs more recovery to be consistent


* POINT

① parameter file을 vi로 열어서 히든파라미터 추가 (_allow_resetlogs_corruption=true)

② DB 강제 OPEN -> redo log file이 삭제되었으므로 open 불가

③ 불완전복구를 수행(resetlogs로 open하기위해) : recover database until cancel;

-> recover시 필요한 redo log file은 직접입력해주고 삭제된 log file은 cancel을 입력하여 복구포기

④ alter database open; 


current 그룹이 삭제된 후 DB가 비정상으로 종료되었는데

백업된 data file이 없고 archive log file이 없다면 복구 불가능

(즉, No archive mode 상태에서 current redo log file 삭제시 복구 불가)


데이터베이스가 open되기위해서는 운영중인 data file, redo log file, control file의 checkpoint가 동일해야하는데

현재 data file들의 checkpoint가 일치하지 않기때문에 open이 불가능


※ RESETLOGS 옵션은 data file끼리 정보가 같고 redo log file이나 control file과 정보가 일치하지 않을경우 사용

※ 즉, data file끼리 checkpoint가 일치하지 않을경우 불완전복구조차 사용불가


데이터복구는 포기하고 DB OPEN을 하기위해서 히든 파라미터를 사용 (_allow_resetlogs_corruption=true)

DB가 정상 open할때 각 data file 헤더부분에 있는 checkpoint를 확인하여 이상 없을경우 open시키게되는데 

이 파라미터를 사용하게되면 checkpoint를 확인하지않고 강제로 open

즉, data file끼리 정보가 일치하지 않아도 DB를 open해야한다면 히든 파라미터를 사용하여 강제 OPEN가능.


그러나 성공률이 높지않으므로 최악의 경우에서만 사용할것.


# 상황 1 : switch가 여러번 발생하여 log file에 있는 데이터가 이미 data file에 기록되어 데이터가 복구된 경우

# 상황 2 : current redo log file에 저장된 데이터 복구 불가한 경우





# 상황 1 : 데이터를 모두 복구해내는 경우















# 상황 2 : Current에 저장된 데이터는 복구하지 못하는 경우








댓글