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
原文地址:https://www.cnblogs.com/dbexpert/p/9136338.html
时间: 2024-10-12 17:01:42