반응형

◎ 초기화 파라미터(Initial Parameter)

 : 오라클 서버가 운영하기 위해, Instance를 메모리에 할당해야하는데 이를 위한 초기화 파라미터 가 필요하다.
   대표적인 초기화 파라미터로 PFile과 SPFile 이 있다.

 8i 이전에는 SPfile은 없고 PFile 만 있었다. 즉, 오라클 인스턴스(SGA+부가)를 생성하기 위해서는 인스턴스의 사이즈, 향후 SQL문이 들어왔을때 물리 데이터 베이스로 부터 데이터를 끌어올리는 버퍼의 크기 등등 인스턴스 설정파일이 필요한데 그것이 파라미터파일(PFile)인 것이다.

근데... 이게 설정바꾸면 계속 db를 껐다 켜야지만 인식이 되는 문제가 있었다. 그래서 8i이후부터는 SPFile 이라고 서버내에 2진 파일로 만들어두고 명령문으로 설정을 변경할 수 있도록 한 것이다. 8i이후부터는 그래서 오라클 설치하면 SPFile은 기본 탑재되어있다.

 

 Start up      ->      nomount      ->      mount                ->                    open
       (PFile or SPFile)       (Control File)      (data file & redo log file)

 

위 순서는 Oracle Database의 Startup 과정을 설명한 것이다. 위에서 보듯이 Startup 상태에서 nomount 상태로

가기 위해서는 PFile 또는 SPFile을 읽어들이는 과정이 있다.

nmount = 오라클 인스턴스 생성이 완료된 상태임.

그렇다면 PFile과 SPFile의 하는 역할에 대해서 알아보도록 하자.

 

(1) PFile (Parameter File)

     - 오라클을 startup 할때 필수적인 파라미터 들이 정의되어있는 기본 설정파일이다.

     - Text 형태로 구성되어있으며, OS 레벨에서 수정이 가능하다.
       (단 수정 후 Database를 재시작해야 적용된다.)

     - ALTER 문으로 수정했을 경우에는, 현재 인스턴스 에만 반영이 될 뿐, 실제 물리적인 파일에는 반영이 되지 않아

       추후 재부팅시에는 적용이 되지 않는다.

 

   1) 최초 Oracle Install 후 현재 PFile의 위치 확인방법

      : 아래와 같이 spfile만 나오면 현재 DB는 spfile설정을 읽어들여 nomount된 상태임.

     SQL> show parameter pfile;
     NAME                                 TYPE                   VALUE
     ------------------------------------ ---------------------- ------------------------------
     spfile                               string                 C:\ORACLE\PRODUCT\11.2.0\DBHOM
                                                                    E_2\DATABASE\SPFILEORCL.ORA

 

 

  2) PFile 생성방법

     : Pfile은 SPFile로부터 생성할 수 있음.(만약 설치 후 SPFile로 구동되고 있다면, PFile은 SPFile로부터 만들 수 있음)

   SQL> create pfile='D:/initPfile.ora' FROM spfile='C:\ORACLE\PRODUCT\11.2.0\DBHOME_2
            \DATABASE\SPFILEORCL.ORA';
   파일이 생성되었습니다.

 

 3) 생성된 PFile 확인방법

orcl.__db_cache_size=1258291200
orcl.__java_pool_size=33554432
orcl.__large_pool_size=16777216
orcl.__oracle_base='C:\oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=1325400064
orcl.__sga_target=1979711488
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=637534208
orcl.__streams_pool_size=0
*.audit_file_dest='C:\oracle\admin\orcl\adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='C:\oracle\oradata\orcl\control01.ctl','C:\oracle\flash_recovery_area\orcl\control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_recovery_file_dest='C:\oracle\flash_recovery_area'
*.db_recovery_file_dest_size=4102029312
*.diagnostic_dest='C:\oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.local_listener='LISTENER_ORCL'
*.memory_target=3298820096
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'

 

 (2) SPFile (Server File)

     - 9i 부터 새롭게 추가됨.  - 2진 Binary 파일로 구성되어 OS 레벨에서 Edition이 불가능 하다.
       (만약 수정하고 싶으면 , Pfile로 변환하여 수정 해야 한다)
     - SPFile은 한번 생성되면 Oracle 구동중에도 Instance를 끄지 않고도 동적으로 반영할 수 있다.

     ※ SPFile 이 생겨나게 된 이유?( WHY? )

         기존 PFile의 경우, 내부 설정을 바꾸기 위해서는 os레벨에서 editing 후, Instance에 적용시키기 위해 Database를

         restart 해야하지만, SPFile이 생긴 후로 Alter system set ?parameter? = ?value? 의 형식으로 SQL을 실행함으로써

         매번 재시작해야하는 번거로움을 줄여준다.(관리상의 편의성이 증대됨)

 

    1) 최초 Oracle Install 후 현재 SPFile의 위치 확인방법

     : 위 Pfile과 동일함.

  SQL> show parameter spfile;
  
  NAME                                 TYPE                   VALUE
  ------------------------------------ ---------------------- ------------------------------
  spfile                               string                 C:\ORACLE\PRODUCT\11.2.0\DBHOM
                                                              E_2\DATABASE\SPFILEORCL.ORASQL> show parameter

 

   2) SPFile 내부 설정 변경방법

    : Alter 문을 이용하여 동적으로 초기화 파라미터를 수정할 수 있다.

   SQL> ALTER system set ?parameter? = ?value? scope = memory|spfile|both
    -- 별도 예제는 하지 않겠음.

    ※ Scope에 대한 설명

    memory : 현재 구동중인 Instance에는 적용시키지만, 별도 초기화 파라미터에는 기록하지 않는다.(한시적임)

    spfile : 메모리에는 적용시키지 않고 초기화 파라미터 파일에만 적용하여, 다음 번 Instance 재가동시 적용시킨다.

    both : 현재 인스턴스에도 적용시키고, 추후 Instance가 재기동 되었을때에 바로 적용할 수 있도록 초기화 파라미터

             파일도 수정함.

 

   3) SPFile 직접 수정방법(OS레벨에서 Edtiong 하는 방법)

      : 구지 SPfile을 OS레벨에서 수정하기 위해서는 Pfile로 변경후 OS레벨에서 Editing 후 SPFile로 다시금 변환
        하는 과정을 거쳐야 한다.

 

   4) SPFile 생성방법

   SQL> create spfile='C:\ORACLE\PRODUCT\11.2.0\DBHOME_2\DATABASE\SPFILEORCL.ORA';   
            FROM  pfile='D:/initPfile.ora'
   파일이 생성되었습니다.

    : 위와 같이 실행하면 됨.

 

(3) 초기화 파라미터 파일 실행 구동 순서

 - 만약 PFILE과 SPFILE둘다 가지고 있는 경우 아래와 같은 순서대로 구동된다.

   ⓐ spfileSID.ora (특정 인스턴스의 SPFile = force 옵션으로 아규먼트로 준 spfile)
   ⓑ 기본 SPFile (show parameter spfile 했을때의 값)
   ⓒ initSID.ora(특정 인스턴스의 PFile = force 옵션으로 아규먼트로 준 spfile)
   ⓓ 기본 PFile 을 읽어드린다. (show parameter pfile 했을때의 값)

반응형

+ Recent posts