본문 바로가기
데이터베이스/오라클

오라클 환경설정 파일 spfile, pfile

by cbwstar 2021. 9. 9.
728x90
반응형

 ORACLE INSTANCE 가 START UP 시에 SPFILE과 PFILE을 읽어 들어 파라미터 값을 적용시킨다. SPFILE이 있으면 SPFILE을 읽게 되며, SPFILE가 존재 하지 않으면 PFILE을 읽게 된다.

 

0. pfile과 spfile의 기본 경로 및 네이밍

 

기본적으로 pfile과 spfile은 $ORACLE_HOME/dbs/ 에 위치한다. pfile은 initdXXXX.ora 로 정의되어 있고 spfile은 spfileXXXX.ora로 저정되어 있다. 여기서 XXXX는 SID값이다.

 

 

1. spfile 사용하기

 

SQL> show parameter spfile

결과 값에서 VALUE 값이 현재 사용되는 spfile 이다. 만약 VALUE 값이 없다면 pfile을 사용하여 startup 된것이다. spfile을 만들어 보자.

 

SQL> create spfile from pfile;

pfile을 기본으로 spfile을 생성했다. 여기서 주의 할 점은 pfile은 아스키 값이고 spfile은 바이너리 파일이다. 그래서 pfile은 직접 편집기로 수정해도 되지만, spfile은 명령어로 값을 변경 하던지 pfile을 변경한뒤 spfile로 만들어야 한다.

 

SQL> startup force

 인스턴스를 재시작해야 spfile이 적용된다.

 

 

2. 파라미터 파일(pfile) 복구

 

 파라미터 파일은 log파일로 이전 값을 기억하고 있다. 만약 pfile과 spfile을 모두 손실 하였다면 log를 기반으로 되살릴수 있다.

 

SQL> show parameter background_dump

위 명령어로 로그 파일의 위치를 알수 있다.

 

SQL> !vi + /u01/app/oracle/product/10.2.0/db_1/rdbms/log/alert_devdb.log

로그를 vi로 열어보면 중간 부분에 pfile이 저장되어 있다. 얼마나 고마운 일인가!!

 

※여기서 !는 SQL쉘에서 OS쉘을 사용하기 위함이다.

 

SQL> !vi /u01/app/oracle/product/10.2.0/db_1/dbs/initXXXX.ora

파일을 생성하여 위의 로그파일에서 얻은 값으로 되살리면 된다.

 

SQL> startup

SQL> create spfile from pfile;

SQL> startup force

SQL> show parameter spfile

인스턴스를 시작하고 pfile로 spfile을 생성하고 재시작한다. 그래고 spfile을 확인하면 정상으로 spfile을 확인할수 있다.

 

 

3. 임의의 pfile을 이용해서 start up

 

SQL> create pfile='/home/oracle/mydevdb.ora' from spfile;

SQL> startup force pfile=/home/oracle/mydevdb.ora

spfile로 pfile을 생성(임의 pfile생성)하여 그 pfile의 경로를 지정하여 start up 할수 있다.

 

 

4. 임의의 spfile을 이용해서 startup

SQL> !vi /home/oracle/param.txt

   spfile=/home/oracle/spmydevdb.ora

 

SQL> startup force pfile=/home/oracle/param.txt

spfile은 직접 경로를 직접 지정하여 start up 할수 없다. 간접적으로 링크 파일을 생성하여 spfile로도 startup 할수 있다.

728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading