1. 程式人生 > >數據庫參數文件PFILE和SPFILE

數據庫參數文件PFILE和SPFILE

parameter param name iss ont 立即生效 reat oracl 文件的

PFILE和SPFILE都是Oracle 數據庫的參數文件;PFILE格式為文本文件,可以直接編輯文件修改,Oracle 9i 以前只能用PFILE來指定和修改數據庫初始化參數;SPFILE 格式為二進制文件,只能通過SQL命令修改,Oracle從 9i 開始,引入了SPFILE.

1. 如何確定數據庫用的是PFILE還是SPFILE?

a. 執行如下命令,結果為非空, 用的是SPFILE

Show parameter spfile;

b. 執行如下查詢,結果為非空, 用的是SPFILE

SELECT NAME, VALUE, FROM V$PARAMETER WHERE NAME =‘spfile‘;

c. 執行如下查詢,結果>0, 用的是SPFILE

SELECT count(*) FROM v$spparameter where isspecified = true;

2. 當使用PFILE時,修改數據庫初始化參數,重啟之後才能生效,非常不方便;

當使用SPFILE時,如果修改的是靜態的數據庫初始化參數,重啟之後才能生效;如果修改的是動態的數據庫初始化參數,可以不用重啟,即可生效。具體見下圖:

參數類型

Scope=spfile

Scope=memory

Scope=both

deferred

靜態參數

可以,重啟服務器生效

不可以

不可以

不可以

動態參數(issys_modifiable為immediate)

可以,重啟服務器生效

可以,立即生效,重啟服務失效

可以,立即生效,重啟服務器仍然有效果

可以

動態參數(issys_modifiable為deferred)

可以

不可以

不可以

可以

3. 創建PFILE 和 SPFILE

create spfile[=’spfile_name] from pfile[=pfile_name];

create pfile[
=pfile_name] from spfile[=spfile_name];

4.參數文件的搜索順序

a. spfile<sid>.ora

Unix/Linux缺省目錄    $ORACLE_HOME/dbs/ 
Windows缺省目錄       %ORACLE_HOME%\database

b. spfile.ora

Unix/Linux缺省目錄   $ORACLE_HOME/dbs/ 
Windows缺省目錄      %ORACLE_HOME%\database

c. init<sid>.ora

Unix/Linux缺省目錄   $ORACLE_HOME/dbs/ 
Windows缺省目錄      %ORACLE_HOME%\database

數據庫參數文件PFILE和SPFILE