数据库参数文件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

猜你喜欢

转载自www.cnblogs.com/dbexpert/p/9136338.html