본문 바로가기

카테고리 없음

ORACLE INSTANCE START

참고자료 : ORACLE 9i FUND 1 VOL 1
===================================

ORACLE INSTANCE START시 진행되는 단계에 대한 이야기를 하고자 한다.

기본적으로 아래와 같은 명령을 날리면
SQL>STARTUP 

ORACLE의 내부에서는 아래와 같은 프로세스가 일어난다
SHUTDOWN -> NOMOUNT -> MOUNT -> OPEN

SHUTDOWN 
- ORACLE INSTANCE가 시작되지 않은 상태

NOMOUNT
- init 파일을 이용해 메모리 할당을 한 상태

MOUNT
- init파일에 정의된 경로를 사용해 control 파일을 가져옴
- control file에 기술된 내용을 check 하지는 않는다.

open
- control file에 기술된 내용을 바탕으로 data files, online redo log files의 존재를 확인한다.

이를 정리하면...

 DB의 상태  사용하는 파일
SHUTDOWN  무... 
 NOMOUNT  init file(parameter file)
 MOUNT  control file
 OPEN  control file, redo log file

명령어에 따라 살펴보면

SQL>STARTUP NOMOUNT;

이 과정에 ALERT LOG를 살펴보면
PARAMETER FILE  정보를 불러오는 걸 확인할 수 있다. 
이 파라미터에 따라 메모리를 할당하고(ex - shared_pool_size, db_cache_size 등등 )
필수 데몬이 실행된다.
PMON, DBWn, LGWR, CKPT, SMON
나의 경우 위 목록에 추가로 RECO( RECOVERY에 관련된 프로세서) 가 떴지만 이는 필수 프로세서가 아님...


다음으로 아래 명령을 실행하였다

SQL>ALTER DATABASE MOUNT;

이 과정에서는 CONTROL FILE을 이용해 DATA FILES 과 ONLINE REDO LOG FILES의 이름과 상태를 획득한다.
ALERT LOG항목을 보면 
Successfule mount of redo thread @#@%#%@@
라는 줄이 보인다.
online redo log 를 체크했음을 알 수 있다.

SQL>ALTER DATABASE OPEN;

OPEN 하는 과정을 살펴보면 ONLINE REDO LOG를 OPEN한 내용을 확인 할 수 있다.

각각의 단계에서 수행하는 내용들과 SHUTDOWN에 대한 내용은 다음 기회에 소개하고자 한다.