2.3. PFILE 과 SPFILE

2019. 4. 25. 17:00 Database/Oracle Admin(9i)

PFILE(파라미터 파일,initSID.ora)

  파라미터 파일은 오라클을 시작하는데에 필수적인 파라미터 들이 정의 되어 있으며, 기본 설정 파일입니다.

  PFILE은 text 화일로 되어 있으며, 운영체제 Editor에서 수정 할 수 있습니다.

  PFILE 수정후 변경한 내용을 적용하기 위해서는 DB를 재시작해야 합니다.

  초기화 파일들의 기본 위치는 아래와 같고, 일반적으로 initSID.ora파일로 저장 됩니다
    - UNIX → $ORACLE_HOME/dbs
    - Windows NT/2000 → %ORACLE_HOME%\database

파라미터 정보를 보는법
 
SQL> CONN / AS SYSDBA

-- 파라미터 하나의 값을 볼 때는 show parameter명령어를 이용 합니다.
SQL> SHOW PARAMETER shared_pool_size ;
------------------------- ------- ---------
shared_pool_size          string  15728640


-- 파라미터의 정보를 보고 싶을 때는 V$PARAMETER을 이용합니다.
SQL> SELECT name, value
     FROM V$PARAMETER
     WHERE UPPER(name) LIKE '%DB%';
NAME                                    VALUE
------------------------------------- -------
dbwr_io_slaves                              0
db_file_direct_io_count                    64
db_block_buffers                         2048
db_block_checksum                       FALSE
db_block_size                            8192
db_block_lru_latches                        1
db_writer_processes                         1
db_files                                 1024
db_file_multiblock_read_count               8
db_block_checking                       FALSE
dblink_encrypt_login                    FALSE
db_name                                 storm
    

PFILE 예제
 
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation

# Miscellaneous
compatible=9.2.0.0.0

# Database Identification
db_name=oracle

# Instance Identification
instance_name=oracle

# Job Queues
job_queue_processes=10

# Cache and I/O
db_block_size=8192
db_cache_size=25165824
db_file_multiblock_read_count=16

# Cursors and Library Cache
open_cursors=300

# File Configuration
control_files=("D:\oracle\oradata\oracle\CONTROL01.CTL", "D:\oracle\oradata\oracle\CONTROL02.CTL", "D:\oracle\oradata\oracle\CONTROL03.CTL")

# Pools
java_pool_size=33554432
large_pool_size=8388608
shared_pool_size=50331648

# Processes and Sessions
processes=150   
    

SPFILE(Server Parameter File)

  Oracle 9i 버전부터 Server Parameter File 이라고 불리는 spfileSID.ora가 새로 추가 되었습니다.

  SPFILE을 사용하게 되면서 ALTER SYSTEM 명령을 통해 데이터베이스가 운영 중에도 파라미터를 수정할 수 있고, 서버를 재시작 하지 않아도 반영이 됩니다.

  SPFILE은 바이너리파일 이고, 파일의 디폴트 저장위치는 PFILE과 동일 합니다.

  SPFILE은 vi와 같은 Editor로 변경을 하면 안 됩니다.

 
-- 변경 예제
SQL> ALTER SYSTEM SET large_pool_size=16M SCOPE=BOTH  
    

ALTER SYSTEM 명령의 scope에 대하여

  ① memory : 변경이 현재 상태에만 영향을 미치며, db가 restartup 되면, 변경 이전 값으로 돌아 갑니다.

  ② spfile : 변경 내용을 spfile에만 저장하고 현재 상태에는 영향을 미치지 않게 합니다. Static Parameter의 경우는 이 scope만 지정 가능 합니다. 즉, spfile을 사용하더라도 Static Parameter에 대해서는 DB운영중에 바로 값을 변경하여 재시작 없이 반영하는 것은 불가능 합니다

  ③ both : 변경 내용을 현재 상태에도 바로 반영하고, spfile에도 반영시켜, 이후 rebooting 시에도 영향을 미치도록 합니다.

CREATE PFILE/SPFILE

  아래와 같은 경우 SPFILE이나 PFILE을 생성 할 수 있습니다.

  - SPFILE을 사용하다가 그 화일의 내용을 initSID.ora에 BACKUP 차원에서 반영시켜 두는경우.

  - SPFILE대신 initSID.ora를 사용하고자 하는 경우

  - 또는 반대로 initSID.ora를 참조하여 spfileSID.ora를 생성하고 하는 경우.

 
-- SQL*PLUS접속
D:> SQLPLUS /NOLOG

-- SYSDBA 권한으로 접속
SQL> CONN / AS SYSDBA

-- PFILE 생성
SQL> CREATE PFILE='D:\oracle\ora92\database\INITORACLE.ORA'
     FROM SPFILE='D:\oracle\ora92\database\SPFILEORACLE.ORA'
파일이 생성되었습니다.


-- SPFILE 생성
SQL> CREATE SPFILE='D:\oracle\ora92\database\SPFILEORACLE02.ORA'
     FROM PFILE='D:\oracle\ora92\database\INITORACLE.ORA'
파일이 생성되었습니다.  

출처 : http://www.gurubee.net/lecture/1860