1. SPFILE이란?
- Oracle 9i부터 Server Parameter File이라고 불리는 spfileSID.ora가 새로 추가 되었습니다.
- ALTER SYSTEM 명령어을 통해 운영중에 파라미터를 수정 할 수 있고, 서버를 restart하지 않아도 반영이 됩니다.
- SPFILE의 내용이 보이기는 하지만 바이너리 파일이기 때문에 수동으로 변경하면 다시 사용 될 수 없습니다.(변경하고자 하면 SPFILE \-> PFILE로 만드시오)
- 파일 위치는 $ORACLE_HOME/dbs이며 파일명은 spfileSID.ora입니다.
- 한번 만들어 지면 오라클 서버에 의해서 자동으로 관리가 됩니다.
1) SPFILE 생성
- PFILE로부터 만들어 지고, SYSDBA권한이 있어야 하며, 인스턴스가 시작하기 전 혹은 시작 후에 할 수 있습니다.
SQL> CREATE SPFILE FROM PFILE;
파일이 생성되었습니다.
SQL> SELECT * FROM V$SPPARAMETER WHERE ROWNUM < 11;
SID NAME
-------------------------------------------------------------------------------- -------------------
* tracefile_identifier
* lock_name_space
* processes
* sessions
* timed_statistics
* timed_os_statistics
* resource_limit
* license_max_sessions
* license_sessions_warning
* cpu_count
10 개의 행이 선택되었습니다.
2) SPFILE 변경
- MEMORY : 즉시 적용된다. 그러나 다시 시작된 후에는 사라진다. PFILE을 이용하여 데이터베이스를 시작한 경우에는 MEMORY가 기본값이다.
- SPFILE : 현재 설정에는 영향을 미치지 않지만 다시 시작되는 순간 이 매개변수가 적용될 수 있도록 SPFILE을 수정한다.
- BOTH : 현재 인스턴스의 설정과 SPFILE을 동시에 변경한다. SPFILE을 사용하여 데이터베이스를 시작하는 경우에는 BOTH가 기본 값이다.
SQL> show parameter large_pool_size;
NAME TYPE VALUE
------------------------------------ ----------- ---------
large_pool_size big integer 16M
SQL>
SQL> ALTER SYSTEM SET large_pool_size=32M SCOPE=BOTH;
시스템이 변경되었습니다.
SQL> show parameter large_pool_size;
NAME TYPE VALUE
------------------------------------ ----------- ---------
large_pool_size big integer 32M
2. PFILE이란.?
- PFILE은 운영체제 에디터를 사용하여 변경 할 수 있는 텍스트 파일입니다.
- 인스턴스가 시작 할 때만 읽히므로 이 파일을 수정하여 다시 반영하려면 인스턴스를 다시 시작해야 합니다.
- 파일 위치는 $ORACLE_HOME/dbs이며 파일명은 initSID.ora입니다.
- KEY=VALUE 형식으로 지정
- 주석은 # 으로 시작
SQL*Plus: Release 10.2.0.1.0 - Production on 화 10월 27 19:02:08 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn sys/sys00@orainzen as sysdba
연결되었습니다.
SQL>
SQL> set lineszie 1500
SP2-0158: 알 수 없는 SET 옵션 "lineszie"
SQL> set linesize 1500
SQL>
SQL> --하나의 파라미터를 확인할때..
SQL>
SQL> show parameter db_block_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 8192
SQL>
SQL> --전체의 파라미터를 확인할때..
SQL>
SQL> SELECT NAME, VALUE FROM V$PARAMETER WHERE UPPER(NAME) LIKE '%DB%' AND ROWNUM > 11;
선택된 레코드가 없습니다.
SQL> SELECT NAME, VALUE FROM V$PARAMETER WHERE UPPER(NAME) LIKE '%DB%' AND ROWNUM < 11;
NAME VALUE
-------------------------------------------------------------------------------- -------------------
dbwr_io_slaves 0
db_file_name_convert
db_block_buffers 0
db_block_checksum TRUE
db_block_size 8192
db_cache_size 0
db_2k_cache_size 0
db_4k_cache_size 0
db_8k_cache_size 0
db_16k_cache_size 0
10 개의 행이 선택되었습니다.