반응형

<오라클 서버의 시작 순서와 파일들>

※ Alter Log 파일은 10g 의 경우 $ORACLE_BASE/admin/SID/bdump/alert_SID.log

11g 의 경우 $ORACLE_BASE/diag/rdbms/SID/SID/trace/alert_SID.log로 존재


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

(1) 파라미터란 ?

- 묵시적 파라미터 : 관리자가 지정하지 않을 경우 자동으로 기본 값을 가지는 파라미터

- 명시적 파라미터 : 관리자가 지정해 주어야만 값을 가지는 파라미터


 항목/파일

 Pfile

 Spfile 

 파일이 존재하는 기본경로

$ORACLE_HOME/dbs 

 파일 이름

 initSID.ora 

 spfileSID.ora 

 내용 변경

 관리자 ( 사람 ) 

 서버 프로세스 

 파일 형태 

 Text ( OS 편집기로 편집가능 ) 

 Binary ( OS 편집기로 편집 불가 ) 

 

 정적 파라미터

 동적 파라미터 


8i 버전 까지 pfile 이 기본 파라미터 파일

9i 버전 부터 spfile 이 기본 파라미터 파일 ( 그래도 여전히 pfile 사용 가능 )


(2) 파라미터 파일의 내용 확인하기

- spfile 은 파일 형태가 바이너리 파일이라서 사람이 내용을 수정할 수 없고, 프로그램이나 프로세스가 내용을 변경

※ 절대 바이너리파일은 사용자가 수정하면 안됨

- pfile 과 spfile 이 동시에 존재할 경우 spfile 내용만 사용함


(3) 파라미터 파일의 내용 변경하기

- pfile 을 수정하고 적용하려면 재시작 해야 함

- 9i 부터 Dynamic SGA 기능이 도입되어 pfile 을 사용하더라도 alter system set 명령을 사용하면 재부팅 없이 즉시적용가능 ( 그러나 D.B를 재부팅하면 os편집기로 수정하지 않았기 때문에 원래의 값으로 돌아가게 됨 )

- spfile 은 편집기로 내용을 수정할 수 없기 때문에 alter system set 명령을 사용하여 수정


사용 예 ) Database Buffer Cache 값을 30M로 변경하는 예

SYS> ALTER SYSTEM SET    db_cache_size=30m    SCOPE = Memory ;


위의 예에서 SCOPE 부분에 올 수 있는 옵션에는 Memory, Spfile, Both 세가지가 있다.

Memory = Spfile의 내용은 변경하지 말고 현재 작동 중인 인스턴스에만 적용하라는 의미. 재부팅하면 다시 Spfile에 적혀있는 값으로 되돌아감. 테스트 등의 목적으로 일시적으로 사용할때

Spfile = 현재 운영중인 인스턴스에는 적용하지 말고 Spfile 의 내용만 변경하라는 뜻.

      재부팅 후부터 적용하겠다는 의미

Both = 현재운영중인 인스턴스에도 즉시 적용하고, spfile 에도 적용하여 재부팅 후에도 유지되게 하라는 뜻

    만약 scope 옵션을 사용하지 않을 경우 both 가 기본 모드


오라클 설치후 사용하기전에 반드시 파라미터 파일을 변경해줘야 함


2. 다양한 방법으로 Instance Open 하기

앞서 살펴본 순서와 같이 오라클 시작 순서는 NOMOUNT -> MOUNT -> OPEN  3단계가 있다.

* 사용중인 파일은 절대로 이동 및 복사를 하면 안됨 ( pfile 은 예외 ) 


- NOMOUNT 단계까지만 시작한 후 나머지 단계 진행

SYS> STARTUP NOMOUNT 

SYS> ALTER DATABASE MOUNT ;

SYS> ALTER DATABASE OPEN ;


- MOUNT 단계까지만 시작한 후 나머지 단계 진행

SYS> STARTUP MOUNT

SYS ALTER DATABASE OPEN ;


- 읽기전용인 상태로 OPEN 하기 ( 데이터를 변경할 수 없고 조회만 가능 )

SYS> STARTUP MOUNT

SYS> ALTER DATABASE OPEN READ ONLY ;


- Restricted Mode ( 제한된 모드 ) 로 OPEN 하기 ( 허가 받은 사용자만 접속할 수 있도록 하는 mode )

SYS> STARTUP RESTRICT ;

Restricted Session이란 권한이 있어야만 접속 가능


- 현재 OPEN 되어 있는 Instance 를 Restricted Mode로 변경

SYS> ALTER SYSTEM ENABLE RESTRICTED SESSION ;

SYS> ALTER SYSTEM DISABLE RESTRICTED SESSION ;


3. Oracle Instance 종료하기

(1) Shutdown 의 4가지 옵션

1. NORMAL ( 기본 옵션 )

- 명령어를 실행하였을 때 접속중인 사용자들이 모두 접속을 종료할 때까지 기다렸다가 종료하는 옵션, 

  사용자가 접속을 종료하지 않으면 Instance는 종료되지 않음 


2. TRANSACTIONAL

- 사용자 스스로 접속종료를 기다려 주지않고 강제로 접속을 중단시킨 후 Instance를 종료

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

- Transaction 이 끝나는 시점 : 사용자가 트랜잭션을 종료시키는 명령어 (DML, DCL, TCL) 을 수행할 때


3. IMMEDIATE

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

- 접속이 종료되는 시점까지 사용자가 수행한 작업중 Commit 이 완료된 데이터를 D.B 버퍼캐쉬에서 찾아 데이터 파일로 저장해 주고, Commit 이 되지않은 작업들은 모두 Rollback 시킨후 Instance 종료


4. ABORT

- immediate 옵션과 같이 즉시 접속을 강제 종료, 다른점은 수행한 작업을 저장하지도,Rollback 시키지도않고 종료

- 비정상 종료 즉 Instance Crash라고 부르며 이렇게 꺼진 Instance는 다시 Startup 될때 SMON이 Instance Recovery를 수행해서 복구해야 함


실습 1. Parameter file 생성 및 관리

모든 Parameter file 이 삭제되어 없을 경우 Oracle 설치시 기본값을 가지고 만들어지는 최초 parameter file 을 활용해 pfile생성


[oracle@localhost ~]$ sqlplus / as sysdba

SQL> shutdown immediate

SQL> !

[oracle@localhost ~]$ cd $ORACLE_HOME/dbs

[oracle@localhost dbs]$ ls

hc_DBA0.dat    init.ora    orapwtestdb    spfiletestdb.ora    hc_testdb.dat    1KTESTDB    snapcf_testdb.f


위와 같이 9i 이후부터 오라클 설치시 기본적으로 spfile 이 존재


[oracle@localhost dbs]$ rm -rf spfiletestdb.ora         <- spfile 을 삭제하는 장애를 만듬

[oracle@localhost dbs]$ exit


SQL> startup <- 초기화 파라미터 파일을 삭제했기 때문에 에러가 생김

ORA-01078 : failure in processing system parameters

LRM-00109 : could not open parameter file '/app/oracle/product/11g/dbs/inittestdb.ora'


위와 같이 초기화 파라미터 파일이 삭제되서 생기는 에러는 아래 방법과 같이 해결해주면 된다


1. 현재 parameter file 확인  - parameter 파일이 없는것을 확인할 수 있다.

[oracle@localhost dbs]$ ls         

 hc_testdb.dat    init.ora    initdw.ora    1KTESTDB    orapwtestdb


2. 이미 만들어져 있는 원본 pfile 찾기

[oracle@localhost ~]$ cd $ORACLE_bASE/admin/testdb/pfile

[oracle@localhost pfile]$ ls

init.ora.8262014183816             <- 원본 pfile, 뒤에 숫자는 server 마다 다름


3. 원본 pfile 복사

[oracle@localhost ~]$ cd $ORACLE_HOME/dbs

[oracle@localhost dbs]$ cp $ORACLE_BASE/admin/testdb/pfile/init.ora.8262014183816 inittestdb.ora

[oracle@localhost dbs]$ ls

 hc_testdb.dat    init.ora    initdw.ora    1KTESTDB    orapwtestdb    inittestdb.ora  <-pfile 


4. test

[oracle@localhost dbs]$  exit

SQL> startup           pfile 을 복사해 왔기 때문에 제대로 startup 되는것을 볼 수 있다


※현재 pfile을 사용했는지 spfile 을 사용했는지 알고 싶을때

SQL> show parameter spfile;          했을때 VALUE 부분에 값이 있으면 spfile 이고 없으면 pfile 이다.


실습 2. pfile, spfile 만들기


pfile 이 있고 spfile 이 없을 때

SQL> create spfile from pfile ;


spfile 이 있고 pfile 이 없을 때

SQL> create pfile from spfile ;



반응형

'오라클 > 관리 실무' 카테고리의 다른 글

Oracle 저장구조  (0) 2014.10.23
Tablespace 와 Data File 관리하기  (2) 2014.10.21
Redo Log 관리하기  (0) 2014.10.20
Control File 관리하기  (0) 2014.10.20
Oracle Background Process  (0) 2014.10.17
SQL 문장의 실행 원리  (0) 2014.10.17
Oracle Architecture  (2) 2014.10.17

+ Recent posts