본문 바로가기

Computer Engineering/DB

오라클 (9i, 10g ) PFILE 과 SPFILE

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


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

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

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

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



◈ 파라미터 정보를 보는법

  SQL> connect sys/manager 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명령을 통해
database가 운영 중에도 파라미터를
   수정할 수  있고
, 서버를 Restart하지 않아도 반영이 됩니다.

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

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

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

 - ALTER SYSTEM 명령 뒤에 scope에 대하여

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

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

  ③ 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 SYS/MANAGER 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://cafe.naver.com/webmas.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=387