Oracle 시작하기와 종료하기.


- 오라클 서버를 시작하기 위해서는, SYSDBA 권한을 가지고있는 계정으로 로그인 해야한다.


 oracle@edydr1p0-orcl ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.1.0 Production on Mon Jun 15 00:30:51 2015

 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area  313159680 bytes

Fixed Size     2212936 bytes

Variable Size   192940984 bytes

Database Buffers   113246208 bytes

Redo Buffers     4759552 bytes

Database mounted.

 

Database opened.



- 오라클 서버 시작단계


 1) STARTUP 명령어를 수행하면, 서버프로세스는 Parameter File을 찾아 읽는다.

 *Parameter File에는 정적파라미터 파일인 Pfile과 동적 Parameter 파일인 Spfile이 있다.

 정적파라미터 파일은 관리자가 수동으로 변경해야하만 하며,  동적 파라미터 파일은 서버프로세스가 자동으로 변경.


 2)NOMOUNT 단계에서는 Parameter파일을 읽고, 그 안에 저장되어 있는 파라미터값을 참고하여 인스턴스를 생성한다.

 * 인스턴스는 SGA와 Background Process들로 구성되어 있으므로 MOUNT단계에서 RAM에 인서턴스가 생성되어 작업할 수 있는 메모리 공간이 확보된다.

 * Alert Log 파일을 열어서 로깅을 시작

 * Alert Log는 인스턴스가 시작되어 운영되고 종료될 때까지 중요한 내용을 모두 저장하는 파일.

 * Alert Log 경로

 10g : $ORACLE_BASE/admin/SID/bdump/alert_SID.log

 11g : $ORACLE_BASE/diag/rdbms/SID/SID/trace/alert_SID.log


 ex) 환경 OEL5, ORACLE 11g 

[oracle@edydr1p0-orcl trace]$ pwd

/u01/app/oracle/diag/rdbms/orcl/orcl/trace

[oracle@edydr1p0-orcl trace]$ ls -ltr

total 1536

-rw-r----- 1 oracle dba    77 Jun  8 10:50 orcl_vktm_17584.trm

-rw-r----- 1 oracle dba  1091 Jun  8 10:50 orcl_vktm_17584.trc  


 3)NOMOUNT 단계를 마치면, Control file을 읽고 MOUNT 단계 진행.

- Control File의 위치정보는 Parameter File에 기록되어있음.

- MOUNT단계에서는 Database의 이상유무 확인.


ex) DBCA 생성 DB, ASM disk 사용

SQL> show parameter control

 

NAME     TYPE VALUE

------------------------------------ ----------- ------------------------------

control_file_record_keep_time     integer 7

control_files     string +DATA/orcl/controlfile/current

.260.881837513, +FRA/orcl/cont

rolfile/current.256.881837515

control_management_pack_access     string DIAGNOSTIC+TUNING


ex) 수동생성 DB, PROD

SQL> show parameter control

 

NAME     TYPE VALUE

------------------------------------ ----------- ------------------------------

control_file_record_keep_time     integer 7

control_files     string /u01/app/oracle/oradata/PROD/c

ontrol01.ctl

control_management_pack_access     string DIAGNOSTIC+TUNING

SQL> show parameter control

 

NAME     TYPE VALUE

------------------------------------ ----------- ------------------------------

control_file_record_keep_time     integer 7

control_files     string /u01/app/oracle/oradata/PROD/c

ontrol01.ctl

control_management_pack_access     string DIAGNOSTIC+TUNING

 


 4)MOUNT 단계에서 이상유무 확인 후 OPEN 단계로 진행.

- INSTANCE Clush로 판단되면, Open 단계로 가기전에 SMON에 의해 Instance Recovery 수행.

- 복구내용을 Redo Log File에서 찾는다. 복구내용이 Redo Log File에 없거나, Archive Log File에 있는 경우 SMON을 통해 Instance Recovery를 수행할 수 없으며 DBA에 의해 Media Recovery 수행해야함.



1. Parameter File (초기화 파라미터 파일)

 1) 파라미터 파일:  Oracle Server가 Startup 하게되면 SGA를 생성하고 Background Process를 시작해야하는데 SGA를 생성할 때 각 SGA구성요소 관련사항을 기록해 두는 파일.


 

 Pfile

Spfile 

 파일 경로

 $ORACLE_BASE/dbs

 파일 이름

initSID.ora 

SpfileSID.ora 

 내용 변경

관리자 

서버 프로세스 

 파일형태

Text(편집기 변경가능) 

Binary (편집기로 변경불가)

- 9i 버전부터 Spfile이 등장하게되었다.

- Spfile 경우 DB사용자가 SQL문을 수행하여 변경하여야 한다.

 

 2) 파라미터 파일의 내용변경

- pfile :

 * OS 편집기를 이용하여 파라미터 파일의 내용을 직접 수정한 후 저장하면 됨.

 * 변경된 사항은 다음 시작부터 적용된다. 9i 이후부터 Dynamic SGA기능이 도입되어 pfile을 사용하더라도 

 * alter system set 명령어를 이용해 재부팅 없이 즉시 적용할 수 있다. 

 (변경해도 Pfile은 변경되지 않으므로, Pfile을 수동으로 변경하지 않으면 재기동 후 원래값으로 돌아간다. )

- spfile

* 관리자가 직접 내용을 수정할 수 없다.

* 내용 변경시 Alter system set 명령을 사용하여 서버프로세스에게 변경을 요청해야함.

SQL> ALTER SYSTEM SET DB_CACHE_SIZE=30m Scope=Memory;

* Scope 옵션

 MEMORY : Spfile 내용은 변경하지 말고 현재 작동 중인 인스턴스에만 적용.

 SPFILE : 현재 운영중인 인스턴스에 적용하지말고, SPFILE 내용만 변경.

 BOTH: 두 가지 모두에 적용. (Scope 옵션을 사용하지 않을 경우 기본모드)



2. Oracle Inatance 종료하기.


- sysdba 권한을 가진 계정으로 shutdown  명령을 통해 Instance 종료.


SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.


1) NORMAL

SQL> shutdown normal 또는 shutdown  명령어로 종료.

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

- 사용자가 접속을 종료하지 않으면, Instance는 종료되지 않는다.


2) TRANSACTIONAL

- SQL>  shutdown transactional 명령어로 종료.

- 사용자가 스스로 접속을 종료할 때 까지 기다리지않고 강제로 접속을 중단시킨 후 Instance를 종료.

- 접속을 강제로 중단 시키는 시점은 사용자가 수행중인 Transaction이 끝나는 시점.

- DML 작업을 수행 중일 경우에는 해당 트랜잭션을 종료하는 명령어 (DDL, DCL, TCL) 수행 시 접속을 강제로 종료시킨 후 데이터를 저장하고 인스턴스를 종료.

- 사용자가 트랜잭션을 종료하지 않게되면 Instance를 종료. (사용자가 COMMIT, ROLLBACK 명령어를 수행해야함.)


3) IMMEDIATE

- SQL> shutdown immediate 명령어로 종료.

- 사용자의 행동에 상관없이 즉시 접속을 강제로 종료.

- 접속이 종료되는 시점까지 해당 사용자가 수행한 작업 중에 Commit이 완료된 데이터를 DB Buffer cache에서 찾아서 데이터파일로 저장해주고, 완료되지 않은 작업은 Rollback 시킨 후 Instance 종료.


4)ABORT

- SQL> shutdown abort 명령어로 종료.

- 사용자의 행동에 상관없이 즉시 접속을 강제로 종료.

- immediate와 차이점은, 사용자가 수행한 작업을 저장하지도 Rollback하지도 않고 즉시 Instance 종료.

- 다시 Startup될 때 SMON이  Instance Recovery를 수행해서 복구함.