Chap 4. Oracle 시작하기와 종료하기

- Oracle 서버를 시작하는 단계는 Startup -> (Parameter file) -> NoMount -> (Control file) -> Mount -> (Redo log file, Data file) -> Open 


 1. Parameter File   

- 처음 Oracle server 를 Startup 하게 되면, 서버 프로세스가 가장 먼저 이 Parameter file 을 찾아서 읽는다. 


1) pfile (정적 Parameter ) 과  spfile (동적 Parameter )

 

 항목 / 파일

 pfile (정적 Parameter )

spfile (동적 Parameter )

기본 경로

$ORACLE_HOME/dbs

파일 이름 

initSID.ora 

spfileSID.ora 

 내용 변경

관리자 

서버 프로세스 

 파일 형태

 text

binary 


 

- 서버에 spfile 과 pfile 이 동시에 있을 경우는 spfile 내용 만 사용한다. 

- 만약 이 parameter file 이 삭제 될 경우, 원본 pfile 을 $ORACLE_HOME/dbs/initSID.ora 로 복사해서 복구 하면 된다. (원본 경로: $ORACLE_BASE/admin/SID/pfile/init.ora.xxxxxxx)

[oracle@my ~]$ cd $ORACLE_HOME/dbs
[oracle@my dbs]$ cp $ORACLE_BASE/admin/testdb/pfile/init.ora.5262013203842 nittestdb.ora

- 현재 spfile 을 사용하는지, pfile을 사용하는지 조회하는 방법


SQL> show parameter pfile;

   NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
spfile                   string  /app/oracle/product/11g/dbs/spfiletestdb.ora

위와 같이 VALUE 부분이 써져 있으면 SP파일이다.

Value 부분이 비어 있으면 P파일 이다.

 

2) Parameter 변경

- Oracle 9i 부터는 Dynamic SGA 기능으로 재부팅 없이 Parameter 값들을 바로 적용 시킬 수 있다. 아래 문장은 DB Cache size 를 30M 으로 변경하는 명령이다.

SYS> alter system set db_cache_size=30m scope=memory;

- 마지막의 scope 옵션은 3가지가 있다. 

 

 옵션

의미 

 Memory

  Spfile 의 내용은 변경하지 말고 현재 작동중인 instance 에만 적용 

  (재부팅 후 다시 원래의 spfile 의 설정으로 돌아감)

 Spfile

  현재 운영중인 Instance 에는 적용하지 않고 Spfile 의 내용만 변경

  (즉, 재부팅 후에 변경하겠다.)

Both 

  위의 2가지 모두를 적용한다는 의미로, 운영중인 instance 에도 적용하고, 

  재부팅 후에도 적용한다는 의미이다. (Default 값이다.) 

 


 2. Instance Open 하기   

- Oracle 의 시작 단계는 nomont -> mount -> open 으로 3 단계가 있으며, DBA 가 원하는 단계까지만 지정해서 Instance 를 시작할 수 있다. 원하는 단계 후에 나머지 단계를 진행하려면 alter database 라는 명령어를 사용해야 한다.

 

< Nomount 단계 까지만 시작한 후 나머지 단계 진행하기 >
SQL> startup nomount;
ORACLE instance started.

Total System Global Area  422670336 bytes
Fixed Size          1344616 bytes
Variable Size         268438424 bytes
Database Buffers      146800640 bytes
Redo Buffers            6086656 bytes
SQL> 
SQL> alter database mount;
Database altered.
SQL> alter database open;
Database altered.
SQL>   

 

< 읽기 전용인 상태로 open 하기 >

SQL> startup mount;
ORACLE instance started.  

Total System Global Area  422670336 bytes
Fixed Size          1344616 bytes
Variable Size         268438424 bytes
Database Buffers      146800640 bytes
Redo Buffers            6086656 bytes
Database mounted.
SQL> 
SQL> alter database open read only;
Database altered.
SQL>   

< Restricted mode (제한 모드) 로 open 하기 >

SQL> startup restrict;
ORACLE instance started.  

Total System Global Area  422670336 bytes
Fixed Size          1344616 bytes
Variable Size         268438424 bytes
Database Buffers      146800640 bytes
Redo Buffers            6086656 bytes
Database mounted.
Database opened.
SQL>

 

 3. Instance 종료하기    

- shutdown 에는 아래와 같이 4가지 옵션이 있다. 


1) shutdown normal 

- 종료 전에 접속되어 있던 사용자들이 모두 스스로 접속을 종료할 때까지 기다렸다가 종료한다. 


2) shutdown transactional

- 사용자가 수행중인 Transaction 이 끝난 시점 (commit, rollback) 에 강제로 접속을 종료한다. 즉, 사용자가 업데이트를 수행한 후 commit 이나 rollback 을 하지 않으면 Instance 를 종료할 수 없다. 


3) shutdown immediate 

- 사용자의 행동에 상관없이 즉시 접속을 강제 종료 하지만, 종료 되는 시점까지 사용자가 수행한 작업을 모두 처리하고 정상적으로 instance 를 종료한다. 즉, commit 이 완료된 데이터는 data file 로 저장해 주고, commit 이 안된 작업들은 모두 rollback 처리 해준다. 


4) shutdown abort

- 무조건 강제 종료이다. 아무 작업도 하지 않는다. 즉, 비정상 종료, Instance Crash 라고 부른다. 

- 다시 startup 될 때 SMON 이 Instance recovery 를 수행해서 복구 한다.

 

by 짱구를꼭말려 2013. 9. 8. 15:28