HOME   로그인   회원가입
    
회원가입
비밀번호 찾기 자동로긴
이전게시판
   free_board
   건강게시판
   오라클DB
   Linux
   HTML/javascript
   질문과 답
호서기
   이미지게시판  
   건강게시판  
   음악자료  
   성준이 게시판  
[일반] 오라클에서 pfile과 spfile의 특징
  호석 님께서 쓴 글입니다 - 211.♡.74.31 읽음:4538  
오라클에서 pfile과 spfile의 특징???
나도 평가하기 00
hunymoon
조회348 답변1
기간 안에 완료하지 못한 질문입니다. (2006-06-02 17:46 작성)
신고
오라클에서 pfile과 spfile의 특징을 알고싶어요...? 임시 게재중단 안내
본 게시물은 현재 지식iN 회원의 신고 또는 게시물 내용 분석 시스템에 의해 검수대상 게시물로 분류되어 작성자 본인 이외에는볼 수 없도록 임시 게재 중지된 상태입니다.

최대 48시간 이내에 지식iN 관리자가 검수를 진행할 예정이며 검수 결과 게재 복원되거나 최종 삭제될 예정입니다.

re: 오라클에서 pfile과 spfile의 특징???
magicdba (2006-06-09 19:28 작성)
신고|이의제기
Oracle9i부터는 database의 initial parameter를 지정하는 initSID.ora file외에
server parameter file이라고 불리는 spfileSID.ora가 새로 소개되었다.
이 spfile을 사용하게 되면 alter system을 통해 database가 운영 중에
parameter를 수정할 수 있게 되면서 parameter 수정때마다 database를 restart
시켜야 하는 필요을 줄여주고, 앞으로 소개될 dynamic한 server tuning에
중요한 역할을 할 수 있다.

Explanation
-----------

이 문서에서는 이러한 spfile에 대해서 실제 사용하면서 알아두어야 할 다음과
같은 내용에 대해서 정리하였다.


1. spfile을 vi로 직접 변경한 경우의 영향
2. db open시 spfile을 읽었는지 확인하는 방법
3. initSID.ora를 spfileSID.ora로 migration하거나 그 반대의 방법
4. alter system으로 parameter변경시 scope에 대해서
5. v$parameter와 v$spparameter에 대해서 (static parameter 확인)


1. spfileSID.ora 화일을 vi로 직접 변경한 경우의 영향

   spfile이 크기 않은 관계로 vi등으로 읽으면 마치 text 화일처럼 parameter가
   보이는데 이 화일은 실제로는 binary file로 직접 변경하면 안된다.
   특히 이 화일의 header에는 checksum과 기본적인 meta-data 정보등을
   포함하여 manual하게 변경하게 되면 이 checksum의 값이 맞지 않게 되면서,
   이후 startup시 이 화일을 읽지 않고 initSID.ora file을 읽게 된다.

   db를 운영하면서 spfile에 계속 parameter가 변경된 경우라면 이러한 문제로
   tuning등을 통해 변경된 parameter value를 모두 잃게될 수 있는것이다.


2. db open 시 spfile을 읽었는지 확인하는 방법

   db가 open 시에 참조한 initial parameter file이 무엇인지를 확인하기
   위해서는 다음과 같이 조회하면 된다.

      SQL> show parameter pfile

      NAME                            TYPE        VALUE
      ------------------------------ ----------- ---------------------
      spfile                          string      ?/dbs/spfile@.ora ;


   여기에서 ?는 ORACLE_HOME을 나타내고 @는 SID를 나타낸다.


3. initSID.ora를 spfileSID.ora로 migration하거나 그 반대의 방법

   spfile을 사용하다가 그 화일의 내용을 initSID.ora에 backup 차원에서
   반영시켜 두거나, 혹은 spfile대신 initSID.ora를 사용하고자 하는 경우,
   또는 반대로 initSID.ora를 참조하여 spfileSID.ora를 생성하고 하는
   경우 다음과 같이 간단히 작업하면 된다.

      SQL>connect / as sysdba
      SQL>create pfile='initORA9i.ora' from spfile='spfileORA9i.ora';
      SQL>create spfile='spfileORA9i.ora' from pfile='initORA9i.ora';

   위 문장에서 화일명 대신 직접 directory까지 절대 path로 지정할 수 있고,
   화일명은 임의로 지정 후 나중에 사용시 initSID.ora나 spfileSID.ora 형태로
   만들어줄 수 있다.
  
   default인 $ORACLE_HOME/dbs directory이고 SID가 붙는 이름 형태이면 간단히,
   다음과 같이 지정하여도 된다.

      SQL>create pfile from spfile;
      SQL>create spfile from pfile;

   sysdba 권한이 없으면 권한 부족 오류가 발생한다.

4. alter system으로 parameter 변경 시 scope에 대해서

   spfile을 사용하게 되면 앞에서도 언급한 것과 같이 spfile을 직접 변경하는
   대신 alter system command를 통해 initial parameter를 수정할 수 있다.

   단 이때 alter system command 뒤에 scope를 지정할 수 있는 데 scope로
   지정가능한 값은 memory/spfile/both 세가지가 된다.
   memory가 이중 default여서 scope를 지정하지 않으면 memory가 된다.

   memory: 변경이 현재 상태에만 영향을 미치며 db가 restartup되면,
           변경 이전값으로 돌아간다.
   spfile: 변경 내용을 spfile에만 저장하고 현재 상태에는 영향을 미치지
           않게 한다.
           static parameter의 경우는 이 scope만이 지정가능하다.
           즉, spfile을 사용하더라도 static parameter에 대해서는 db
           운영중에 바로 값을 변경하여 restartup없이 반영하는 것은 불가능
           한 것이다.
   both:   변경 내용을 현재상태에도 바로 반영하고, spfile에도 반영시켜,
           이후 rebooting시에도 영향을 미치도록 한다.

   지정하는 방법은 다음과 같다.

   SQL>alter system set open_cursors=300;
   SQL>alter system set open_cursors=300 scope=spfile;
   SQL>alter system set open_cursors=300 scope=both;

   단, spfile을 참조하지 않고 init.ora를 참조하여 db가 open한 경우 이러한
   alter system 명령을 통해 initial parameter를 변경하려고 하면
   다음과 같은 오류가 발생한다.

   특히 spfile에 외부의 변경이 가해져 spfile이 참조되지 않은 경우에 주로
   다음 오류를 만날 수 있다.

      ORA-02095: specified initialization parameter cannot be modified


5. v$parameter와 v$spparameter에 대해서 (static parameter 확인)

   initial parameter의 종류에는 db가 운영 중에는 바로 그 값을 변경하여
   반영시킬 수 없고, 다음 startup 후에만 변경된 값이 영향을 주게되는
   parameter가 있다.
   이러한 parameter를 static parameter라고 부른다.
 
   이 static parameter의 경우는 그래서 alter system으로 변경하더라도,
   scope=spfile 로만 지정 가능한 것이다.
   이러한 static parameter를 scope를 지정 안 해서 memory로 하거나 both로
   하게 되면 4번에서 설명한 ORA-2095 오류가 발생하게 된다.

   그럼 static parameter는 어떻게 확인할 수 있는가?

      SQL>select name, issys_modifiable from v$parameter;

   여기에서 보면, issys_modifiable의 값으로 다음 세 가지가 나타난다.

   FLASE:     static parameter로 scope=spfile로만 값을 변경 가능하다.
              즉 값을 변경해도 이후 startup 시부터 영향을 미치게 된다.
   IMMEDIATE: 값을 변경하면 현재 session부터 바로 영향을 받게된다.
   DEFERRED:  변경된 값이 이후 접속되는 session부터 영향을 준다.

  
   alter system을 통해 parameter를 변경하는 경우 변경된 값이 반영이 잘
   되었는가를 확인하려면 다음과 같이 show parameter나 v$parameter를
   조회하고, 현재 반영은 안 되었더라도 spfile에 저장은 되었는지를 확인하
   려면 v$spparameter를 조회하면 된다.

      SQL>show parameter open_cursors
      SQL>select value from v$prameter where name = 'open_cursors';
      SQL>select value from v$spparameter where name = 'open_cursors';

   즉, scope=spfile로 parameter를 변경한 경우는 v$spparameter에만 변경
   된 값이 나타나고, show parameter나 v$parameter에서는 변경 전 값이
   나타나게 된다.


목록

분류 선택
55 일반 오라클 정리자료 sql [인터넷 참조자료 ] 호석 06-08-06 5024
56 일반 오라클 활용명령 [인터넷 참조자료 ] 호석 06-08-06 5204
57 일반 [sql] 테이블 스페이스 정보 확인 , 증가율도 확인 호석 06-08-17 12180
58 일반 [ORA-06508] 에러처리 호석 06-09-05 6909
59 일반 튜닝싸이트 호석 06-12-10 4462
60 일반 쿼리방식을 이용한 export dump data 받기 exp 호석 06-12-19 4669
61 일반 토드 7.4 깔구나서 에러 나면 regedit 로 키값을 변경해야됨 toad 호석 07-01-19 4576
62 일반 [튜닝] 오라클 튜닝 관련 펌 호석 07-01-30 7082
63 일반 오라클 초기화 파일을 변경해서 오픈하기 호석 07-01-31 4095
64 일반 [SQL] 오라클 속도저하 문제 추출 호석 07-02-02 6217
65 일반 [튜닝] 계속 swap paging 발생시에 호석 07-02-09 4795
66 일반 MYSQL manual 한글번역(260k) 호석 07-02-10 5779
67 일반 오라클 사용자수별 파라미터 설정값 호석 07-02-10 4561
68 일반 오라클 인덱스 작성 규칙 ORACLE 호석 07-02-15 5212
일반 오라클에서 pfile과 spfile의 특징 호석 07-03-09 4539
처음이전  [1] [2] [3] [4] [5] 6 [7] [8] [9] [10]  다음맨끝

 
Copyright © zenos.pe.kr. All rights reserved.