본문 바로가기

Oracle

[Oracle] 오라클 파라미터 파일 : 환결설정 파일 spfile, pfile 알아보기

1. 파라미터 파일이란?

  • 오라클 서버가 운영될 때 인스턴스가 메모리에 할당도리 때 필요한 파일
  • initialization parameters와 각 parameter의 값을 포함하는 파일로 pfile과 spfile이 있음
  • 포함 내용 : 인스턴스 설정을 위한 파라미터, 인스턴스와 연관된 데이터베이스 이름, SGA 구성 정보, 리두 로그파일의 아카이브 여부, 컨트롤 파일의 위치 및 이름, 언두 세그먼트

 

 

 


 

 

2. pfile (정적 파라미터)

  • initSID.ora파일이며 text file로 되어있어 수정 가능(위치 : $ORACLE_HOME/dbs)
  • pfile 수정 후 변경한 내용을 적용하기 위해서는 DB를 재시작해야함
  • spfile과 pfile을 모두 가지고 있으면 spfile이 우선순위가 높아 spfile 기준으로 startup이 됨.
  • spfile 을 찾을 수 없는 경우 시작 시 자동으로 검색
  • spfile이 있더라도 pfile을 이용해 startup하거나, pfile이 다른 경로에 있다면 아래와같이 진행
[oracle@root]$ startup pfile='pfile위치/pfile명.ora'

 

 


 

 

3. spfile (동적 파라미터)

  • spfileSID.ora파일이며 바이너리 file로 되어있어 수정 불가능
  • spfile과 pfile을 모두 가지고 있으면 spfile이 우선순위가 높아 spfile 기준으로 startup이 됨.
  • Oracle Instance가 실행되는 서버에 있으며 종료 및 시작과 관계없이 계속 유지되며, 시작 시 자동으로 검색됨
  • NOMOUNT 단계 이상이면 spfile을 제거하거나 이동하면 안됨

 


 

 

4. 파라미터 확인

-- 한번에 하나의 파라미터
SQL> show parameter 파라미터명


-- 한번에 여러 파라미터
SELECT name, value FROM V$PARAMETER;

 

 


 

 

5. 파라미터 변경 방법

5-1. spfile

  • scope의 memory : 현재 상태에만 영향을 미쳐 DB가 shutdown 후 startup하면 변경 이전 값으로 돌아감
  • scope의 spfile : 변경 내용을 spfile에만 저장하고, 현재 상태에는 영향을 끼치지 않음
  • scope의 both : 변경 내용을 현재 상태 + spfile에 모두 반영
  • sid의 값 : DB가 RAC 상황인 경우, *는 모든 DB / 각각DB에 설정을 다르게 하기 위해서는 instance명을 입력
ALTER SYSTEM SET [parameter명]=[parameterVALUES] [SCOPE=(MEMORY/SPFILE/BOTH)] [SID=(*/instance명)]

 

 

5-2. pfile

[oracle@admin]$ vi pfile파라미터파일명.ora

 

 


 

 

6. 파라미터 파일 서칭 방법

  1. spfile<SID>.ora
  2. spfile.ora
  3. init<SID>.ora
  4. init.ora

 


 

 

7. spfile에서 pfile로 변경

7-1. spfile 사용하는지, pfile 사용하는지 확인

SQL> show parameter spfile;

NAME                      TYPE       VALUE
------------------------- ---------- -------------------------------------
spfile                    string     /spfile위치/spfile명

 

 

7-2. spfile로부터 pfile 생성

SQL> create pfile from spfile;

 

 

7-3-1. spfile 삭제 후 인스턴스 재시작

  • spfile과 pfile을 모두 가지고 있으면 spfile이 우선순위가 높아 spfile 기준으로 startup이 됨.
[oracle@gayoung]$ rm $ORACLE_HOME/dbs/spfile명

 

 

7-3-2. spfile 삭제 없이 재시작 시 pfile로 지정

  • spfile과 pfile을 모두 가지고 있으면 spfile이 우선순위가 높아 spfile 기준으로 startup이 됨.
[oracle@gayoung]$  startup pfile='/pfile위치/pfile명'

 

 


 


8. pfile에서 spfile로 변경

8-1. spfile 사용하는지, pfile 사용하는지 확인

  • show parametger spfile; 명령어를 쳤을 때 value가 빈값이라면 pfile을 사용하는 것
SQL> show parameter spfile;

NAME                      TYPE       VALUE
------------------------- ---------- -------------------------------------
spfile                    string

 

 

8-2. pfile로부터 spfile 생성

SQL> create spfile='/파일위치/파일이름' from pfile;

 

 

8-3. spfile 로 인스턴스 재시작

  • spfile과 pfile을 모두 가지고 있으면 spfile이 우선순위가 높아 spfile 기준으로 startup이 됨.
[oracle@gayoung]$ startup