数据库参数文件PFILE和SPFILE

Posted dbexpert

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库参数文件PFILE和SPFILE相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

oracle的参数文件(pfile,spfile)

10pfile和spfile文件详解

Oracle基础 07 参数文件 pfile/spfile

PFILE和SPFILE介绍

PFile and SPFile文件的管理和使用

ORACLE的SPFILE与PFILE