본문 바로가기

ORACLE

인스턴스 관리 - PFILE & SPFILE


1. 파라미터 파일의 종류

- 오라클 서버가 운영되려면 인스턴스가 메모리에 할당 되어야 하며, 이를 위해서는 파라미터 파일이 필요하다.

오라클 서버의 파라미터 파일은 과거부터 계속 사용해왔던 PFILE 과
Oracle 9i부터 새롭게 추가된 SPFILE 의 두가지 형식이 있다.

- 파라미터 파일에는 다음과 같은 내용이 저장되어 있다.
1) 인스턴스 설정을 위한 파라미터
2) 인스턴스와 연관된 데이터베이스 이름
3) SGA 구성 정보
4) 리두 로그파일의 아카이브 여부
5) 컨트롤 파일의 위치 및 이름
6) 언두 세그먼트 관련 정보

-------------------------------------------------------------------

2. PFILE

- PFILE : 일반적으로 initSID.ora 라는 파일명을 갖는다. (SID 는 오라클의 SID값에 따라 틀려진다.)
- Oracle에서 예전부터 사용해 오던 파라미터 파일로
일반 텍스트 형식의 파이로 일반 편집기를 이용하여 수정이 가능하며, 데이터베이스가 시작되어 인트턴스가 메모리에 할당 될 때 딱 한번만 읽는다.
- 파일 경로 : G:\oracle\ora92\admin\sample\pfile\initsmpl.ora - pfile의 샘플파일이다. spfileSID.ora 를 이용해서 initSID.ora 파일을 생성해주면 된다.

2-1. PFILE 생성

- Oracle 9i를 설치완료후에는 PFILE이 샘플파일로 되어 있다. SPFILE을 이용해 PFILE을 생성해 준다.
우선 SPFILE을 생성 및 수정하기 전에 G:\oracle\ora92\admin\sample\pfile\initsmpl.ora 파일을 백업해둔다.

C:\>sqlplus /nolog

SQL*Plus: Release 9.2.0.1.0 - Production on 일 Jan 11 15:55:06 2009

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn /as sysdba
연결되었습니다.

SQL> create pfile='G:\oracle\ora92\admin\sample\pfile\initoracle9.ora'
  2  from spfile='G:\oracle\ora92\database\SPFILEORACLE9.ORA ';

파일이 생성되었습니다.

SQL>

- 참고      - 경로를 안적어 주어도 되지만 pfile을 확인시 제대로 생성이 안되었을 경우에는 경로를 적어주면 된다.
SQL> CREATE PFILE FROM SPFILE;
SQL> CREATE SPFILE FROM PFILE;

-------------------------------------------------------------------

3. SPFILE

- SPFILE : 일반적으로 spfileSID.ora 라는 파일명을 갖는다.
- Oracle 서버 실행시 초기값을 SPFILE 이 참조되기 때문에 중요하다.
- Oracle 9i 부터 새롭게 소개된 SPFILE은 텍스트 파일이 아닌 2진파일로 구성된 바이너리 파일로 직접 수정 할 수 없다.
- SPFILE은 한번 생성되면 Oracle 서버에서 관리되며 데이터베이스가 운영중인 상태에서도 변경된 파라미터를 인스턴스에 동적으로 반영시킬수 있다.
- 파일 경로 : G:\oracle\ora92\database\spfileSID.ORA

3-1. 새로운 SPFILE 생성

- 2-1.에서 생성한 PFILE을 이용해 SPFILE을 만들어 본다. (이미 SPFILE이 있기 때문에 꼭 실행시켜 줄 필요는 없다.)
우선 SPFILE을 생성 및 수정하기 전에 G:\oracle\ora92\database\SPFILEORACLE9.ORA 파일을 백업해둔다.

SQL> create spfile='G:\oracle\ora92\database\SPFILEORACLE9.ORA'
  2  from pfile='G:\oracle\ora92\admin\sample\pfile\initoracle9.ora';
create spfile='G:\oracle\ora92\database\SPFILEORACLE9.ORA'
*
1행에 오류:
ORA-32002: 인스턴스가 이미 사용 중인 SPFILE을 생성할 수 없음 - Oracle 데이타베이스 실행 중에는 SPFILE을 생성할 수 없다.

SQL> shutdown - Oracle 데이타베이스를 중지시켜준다.
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.

SQL> create spfile='G:\oracle\ora92\database\SPFILEORACLE9.ORA'
  2  from pfile='G:\oracle\ora92\admin\sample\pfile\initoracle9.ora';

파일이 생성되었습니다.

SQL> startup - Oracle 데이타베이스를 재시작해준다.
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.

-------------------------------------------------------------------

3-2. SPFILE 수정

- SPFILE이 2진 파일이기 때문에 직접 열어보거나 수정 할 수 없기 때문에 텍스트 형태인 PFILE로 변환하여 수정할수 있다.
그러므로 SPFILE 을 수정하기 위해서는

Oracle 데이타베이스 중지 ---> 기존의 SPFILE로 PFILE 생성 ---> PFILE 편집 ---> 새로운 SPFILE 생성 ---> Oracle 데이타베이스 재시작
의 단계를 거쳐야 한다.


SQL> show user
USER은 "SYS"입니다
SQL> show sga

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes

Redo Buffers                 667648 bytes
SQL> shutdown
데이터베이스가 닫혔습니다.
데이터베이스가 마운트 해제되었습니다.
ORACLE 인스턴스가 종료되었습니다.
SQL> create pfile='G:\oracle\ora92\admin\sample\pfile\initoracle9.ora'
  2  from spfile='G:\oracle\ora92\database\SPFILEORACLE9.ORA';

파일이 생성되었습니다.

-------------------------------------------------------------------

워드패드 -> initoracle9.ora
*.db_cache_size=25165824 -> *.db_cache_size=15165824 로 수정

-------------------------------------------------------------------

SQL> create spfile='G:\oracle\ora92\database\SPFILEORACLE9.ORA'
  2  from pfile='G:\oracle\ora92\admin\sample\pfile\initoracle9.ora';

파일이 생성되었습니다.

SQL> startup
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area  126950220 bytes
Fixed Size                   453452 bytes
Variable Size             109051904 bytes
Database Buffers           16777216 bytes
Redo Buffers                 667648 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
SQL> show sga

Total System Global Area  126950220 bytes
Fixed Size                   453452 bytes
Variable Size             109051904 bytes
Database Buffers           16777216 bytes - buffers 용량이 변경된 것을 확인할 수 있다.
Redo Buffers                 667648 bytes

-------------------------------------------------------------------

4. Oracle 데이터베이스 시작시 PFILE지정

4-1. Startup 방법 (1)

SQL> startup
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.

4-2. Startup 방법 (2)

-------------------------------------------------------------------

C:\oracle\ora92\database\INITtest.ora 파일 생성 - INITtest.ora 처럼 INIT는 대문자로 반드시 적어주어야 한다.

#INITtest.ora
SPFILE='G:\oracle\ora92\database\SPFILEORACLE9.ORA'

-------------------------------------------------------------------

SQL> startup pfile='G:\oracle\ora92\database\INITtest.ora' - 속도는 파일을 한번더 거치기 때문에 느리다.
ORACLE 인스턴스가 시작되었습니다.

Total System Global Area  135338868 bytes
Fixed Size                   453492 bytes
Variable Size             109051904 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.

'ORACLE' 카테고리의 다른 글

데이터 파일 이동  (0) 2009.01.13
Shutting Down the Database  (0) 2009.01.13
Starting Up a Database  (0) 2009.01.11
Oracle 9i 설치  (0) 2009.01.11
ORACLE SYSTEM 계정 비밀번호 분실시 해결방법  (0) 2008.12.31
shared memory realm does not exist  (0) 2008.12.31