Oracle Data Base Startup

Oracle Startup은 내부적으로 3개의 과정으로 나누어 실행된다. 각각의 과정에서 작업되는 내용 및 사용되는 file은 Backup이나 Recovery시 꼭 필요한 부분이라고 할 수 있다.

SQL> startup

    Oracle instance startup.

    Database mounted.

    Database opened.


1단계 : Nomount

Oracle이 운용하는데 필요한 background process를 실행시키고 system memory내에 SGA ( system global area )를 할당한다

1. init$ORACLE_SID.ora file을 찾는다.

Init$ORACLE_SID.ora file에는 Oracle이 startup하는데 필요한 parameter 값이 정의되어 있으므로 가장 먼저 $ORACLE_HOME/dbs/init$ORACLE_SID.ora file를 찾는다.

2. background process를 기동 한다.

init$ORACLE_SID.ora file내에 지정된 config file를 포함하여 parameter 내용을 참조하여 Oracle background process를 startup 한다.

3. SGA를 할당 받는다.

init$ORACLE_SID.ora file내에 지정된 parameter 값을 이용하여 system memory내에서 SGA를 할당 받는다.

F backup & recovery시 필요 사항

Backup & recovery시 꼭 필요한 file이 이곳에서 도출 되었다. Init$ORACLE_SID.ora와 config file은 backup시 항시 같이 backup되어야 하고 recovery시에도 유용하게 사용되는 file이다.

2단계 : database mount

init[sid] file에 지정된 control file를 읽어 모든 data file을 mount 시킨다.

1. control file을 찾는다.

control file에는 Datafile 및 redo log file에 대한 정보 및 SCN ( system control number )이 정의되어 있다. 이 정보를 이용하여 모든 자료의 commit 시점이 동일한가를 검증한다. 만일 틀리면 redo log를 이용하여 Recover 한 후 startup한다.

2. data file을 mount 시킨다.

Control 화일에 정의된 모든 data file을 사용하기 위하여 mount시킨다.

3. redo log 화일을 mount 시킨다.

control화일에 정의된 redo log file을 사용하기 위하여 mount시킨다.

F 이 상태에서 중요한 몇 가지 backup, recovery, dba 작업이 가능하다.

1.전체 database의 복구가 가능하다.

2.No archive log mode를 archive log mode로 변경이 가능하다.

3.Data file의 위치나 이름의 변경이 가능하다.

4.리두 로그 파일의 추가, 삭제, 이름 변경

5.불완전한 데이터베이스 복구

3단계 : database open

마운트된 데이타베이스를 User들이 접속할 수 있도록 online log file과 data file을 open한다.

1. 자동 recovery 수행

mount된 data file등을 이용하여 비 정상적인 종료 ( shutdown abort ) 등으로 인한 data file의 SCN 불일치시 RECO process가 자동으로(즉시. consistent하게) 해당 transaction을 해결하고 recovery를 수행한다. Redo log와 rollback segment의 정보 만으로 recovery가 불가능 할 경우 media recovery를 요청한다.

2. data file open

모든 data file이 정상인 경우 data file을 open한다.

3. user 사용 가능

이제부터 모든 사용자의 database access가 가능한 상태로 전환된다.

Oracle Data Base Shutdown

Oracle startup시와 반대로 수행된다.

SQL> shutdown

Database closed.

     Database dismounted.

ORACLE instance shutdown.

Closing Database

Database를 close 할 때 Oracle은 모든 SGA 안의 database data와 recovery data를 datafile과 redo log file에 각각 write 한다. 이 작업이 수행된 후 Oracle은 모든 online datafile과 online redo log file을 close 한다. Control file은 database가 close 된 후에도 여전히 mount 되어 open 된 상태로 남아 있는다.

특수한 상황에 open 된 database의 instance를 abort 시키고 database를 즉시 dismount 시킬 수 있다. 이 과정은 SGA buffer를 datafile과 redo log file에 기록하는 과정을 생략하므로 빠르게 수행될 수 있다. (Oracle은database를 reopen 할 때 자동으로 복구한다 – instance recovery)

Dismount database

Database를 dismount 시킨 후에는 memory 안에 instance만이 남아 있게 된다. Database가 dismount 된 후 Oracle은 database의 control file을 close한다.

Shutdown instance

Instance를 shut down 할 때 memory로부터 SGA가 제거되며 background process가 종료된다.


By 박용석

안녕하세요. 오라클 DBA 박용석 입니다. 궁금하신 사항이 있으시면 haisins@gmail.com 으로 문의 메일 보내주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다