Oracle

게시글 보기
작성자 유건데이타 등록일 2015-05-21
제목 DB STARTUP 시 ORA-312, ORA-313(ONLINE REDO LOG CRASH)


=====================================================
DB STARTUP 시 ORA-312, ORA-313(ONLINE REDO LOG CRASH)
=====================================================

PURPOSE
---------
[ ONLINE REDO LOG가 손상되었을 때 DB에 OPERATION 이 없었던 경우는 다음과 같은 절차로 DB 을 OPEN 할 수 있다. - 확률 70% ]


Explanation & Example
----------------------


1. CONTROLFILE 생성

-. 손상된 online log 는 포함시키지 않는다.
-. resetlogs option 으로 생성한다.
-. reuse option 은 생략하고 기존 controlfile 은 다른 이름으로 move 시킴.


sqldba> startup mount
sqldba> alter database backup controlfile to trace;

위와 같이 명령을 입력하면 ORACLE_HOME/rdbms/log 디렉토리에 trace 화일이
생긴다. 그 trace 화일에서 create controlfile 명령 부분을 남기고 삭제
한다.
(7.3 이상에서는 cd $ORACLE_HOME
cd ../../admin/SID dir/udump 에 있습니다.)

콘트롤 화일 생성 문장 예 - : GROUP 1 이 ONLINE LOG 라고 가정
---------------------------------------------------------------------
CREATE CONTROLFILE DATABASE "RC722" RESETLOGS NOARCHIVELOG
MAXLOGFILES 32 ********
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 8
MAXLOGHISTORY 800
LOGFILE
GROUP 2 '/oracle/oracle/dbs/log2RC722.dbf' SIZE 5M,
GROUP 3 '/oracle/oracle/dbs/log3RC722.dbf' SIZE 5M
DATAFILE
'/oracle/oracle/dbs/systRC722.dbf',
'/oracle/oracle/dbs/rbsRC722.dbf',
'/oracle/oracle/dbs/toolRC722.dbf',
'/oracle/oracle/dbs/usrRC722.dbf',
'/oracle/oracle/dbs/tempRC722.dbf',
'/oracle/oracle/rcdata.dbf'
;

2.절차

$ sqldba lmode=y
SQLDBA> connect internal
SQLDBA> shutdown abort
SQLDBA> startup nomount
statement processed
SQLDBA> @cnt
SQLDBA> recover database using backup controlfile until cancel;
....
...
CANCEL (Return)
Recovery canceled

SQLDBA> alter database open resetlogs;

: 만일 정상적으로 open 되면 log file 추가

SQLDBA> alter database add logfile '?/dbs/log1ORA722.dbf' size 1M;

Reference Documents
-------------------
none
Comment
등록된 코멘트가 없습니다.