2. 서버 파라미터 파일(spfile)

오라클이 접근하고 인스턴스의 파라미터 설정을 관리하는 중요한 변화를 대표하는 파일이다.
다음과 같은 장점을 가지고 있다.

  • SPFILE은 파라미터 파일이 여기저기에 만들어지지 않게 한다.
  • 데이터베이스 바깥의 파라미터 파일을 텍스트 편집기를 이용해 수작업으로 관리할 필요성이 없어진다.

초기 설정은 다음과 같다.

  • $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
  • %ORACLE_HOME/database/spfile%ORACLE_SID%.ora

웬만하면 이 파일은 기본 위치에서 사용하는 것이 좋다.

2.1 SPFILE로 변환하기

spfile을 사용하고자 한다면, CREATE SPFILE 명령을 사용하여 생성하면 된다.


SQL> show parameter spfile;

SQL> create spfile from pfile;

[참고]
오라클 RAC를 사용하는 클러스터 환경에서 모든 인스턴스는 하나의 spfile을 공유하므로, pfile에서 spfile로의 변환은 통제 상황에서 진행해야 한다.

RAC용 pfile 예제

  • \*.XXX 로 쓰여진 것은 모든 노드에 대한 설정이다.
  • 특정 노드에 대한 설정은 인스턴스이름.XXX 로 설정값을 작성한다.

2.2 SPFILE 값 설정하기

alter 구문을 사용하여 설정이 가능하다.


alter system set parameter=value <comment='text'> <deferred> <scope=memory|spfile|both> <sid='sid|*'>

deferred : 시스템 변경이 현재 세션이 아닌 다음 세션부터 적용될 것인가에 대한 여부를 명시하는 것이다.


SQL> select name from v$parameter 
where issys_modifiable='DEFERRED';

\--> 버전에 따라 결과 목록이 다르긴 하지만, 위 파라미터들은 온라인 상태에서 설정할 수 있으며, 변경이 가능하다.

2.3 SPFILE에서 설정값 되돌리기

SPFILE안에 파라미터에 대한 변경을 하고 싶지 않고 차라리 없애는 방법이다.


alter system reset parameter <scope=memory|spfile|both> sid='sid|*'

다음과 같이 검증이 가능하다.


create pfile='/tmp/pfile.tst' from spfile;

2.4 SPFILE을 이용하여 PFILE 생성하기

다음과 같은 명령어를 사용하여 처리가 가능하다.


create pfile ... from spfile

이 구문은 다음과 같은 경우에 사용한다.

  • 특별한 설정을 가지고 유지 보수를 하기 위해 사용되는 일회성 파일
  • 주석이 달린 변경 사항에 대한 이력 관리하기

2.5 훼손된 SPFILE의 복구

  1. 첫번째 방법
    String 명령어를 사용하여 데이터 추출
  2. 두번째 방법
    alert log파일의 파라미터 정보를 사용하여 재생 한다.

--> 주기적으로 pfile로 백업하는 것도 좋다.