Programer Life/DB
인스턴스 관리 - PFILE & SPFILE_2
신비마마
2009. 7. 7. 10:29
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
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.
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
데이터베이스가 마운트되었습니다.
데이터베이스가 열렸습니다.