참고자료 : ORACLE 9i FUND 1 VOL 1
===================================
기본적으로 아래와 같은 명령을 날리면
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에 대한 내용은 다음 기회에 소개하고자 한다.