본문 바로가기

DB

[DB] 오라클 parameter 변경 및 spfile, pfile 설명

 

오라클 parameter 변경을 알아보자

파라미터 확인방법 (2가지 방법)
SQL> select name,value from v$parameter ß 현재 DB의 parameter 값을 알려준다
SQL> select name,value from v$spparameter ß spfile에 설정된 parameter 값을 알려준다.
SQL> show parameter 파라미터네임


select 로 parameter 를 확인할경우 where 로 확인할수 있고, 동일하게 show 명령에에 파라미터네임을 줘서 확인할수 있다.
* 오라클 9i 부터 spfile 을 제공하고, 그이전에는 pfile 만 제공했엇다.

spfile 과 pfile 의 차이점

구분

spfile

Pfile

오라클 실행시 우선순위

high

Low

파일명

Spfile$SID.ora

Initd$SID.ora

저장위치

$ORACLE_HOME/dbs/

$ORACLE_HOME/dbs/

동적 parameter 수정시

Oracle 실행시 명령어

Oracle 실행시 명령어 또는
직접 파일 수정

정적 parameter 수정시

Oracle 실행시 명령어 후 재시작

직접 파일 수정후 재시작


parameter 수정 명령어
SQL> alter system set <파라미터네임>=<변경값> scope=[spfile|memory|both];

옵 션

설 명

scope

Spfile 운영 환경에서만 사용된다

spfile

Spfile만 수정한다. (정적인 파라미터 수정에서는 필수다)

memory

현재 DB의 parameter 만 수정하며, spfile 은 수정하지 않는다.
(재시작 하면 원래 spfile 설정값으로 돌아간다)

both

현재 DB 의 parameter 와 spfile 모두 수정한다. (default 값)


pfile 생성 방법
1. 현재 운용중인 spfile 로부터 pfile 을 만든다. (create pfile from spfile;)
2. 오라클 설치한 이후 parameter 변화가 없거나 적다면 default 파일인 $ORACLE_BASE/admin/$SID/pfile 디렉토리에서 복사해 쓴다.
3. 경고로그파일 에서 오라클 스타트없때 사용된 디폴트값이 아닌 모든 파라미터 값을 참조해서 pfile 을 생성한다
4. pfile 백업본이 있는경우 백업본을 이용한다
5. 위의 4가지 방법을 사용할수 없는 최악의 경우 $ORACLE_HOME/dbs 디렉토리의 init.ora 파일을 예제삼아 현재 DB의 parameter 값을
추측해서 pfile을 생성한다.


spfile 사용중인지 pfile 사용중인지 확인방법
SQL> show parameter spfile
NAME      TYPE            VALUE
-------- ------------- ------------------------------------
spfile       string            $ORACLE_HOME/dbs/spfile$SID.ora


위와 같이 value 값이 나오면 spfile 을 사용중이고 pfile 사용중에는 value 값이 없다.
위 결과값중 $ORACLE_HOME 과 $SID 는 사용자 마다 틀릴수 있어서 변수명으로 적은것이지만, 실제 환경에서는 절대경로와 파일명이 제대로 표현된다.

spfile 이든 pfile 이든 사용하게 되면 환경설정파일은 1개만 $ORACLE_HOME/dbs/ 디렉토리에 위치할수 있도록 하자. 안그러면 관리자가 헷갈릴수도 있으며, 잘못하다가는 오라클 시작시 다른 환경설정파일을 가지고 시작될수 있다.