它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。
初始化参数文件(Initialization Parameters Files),Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件。
服务器参数文件(Server Parameter Files),从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改。
scope=both 立即并永久生效(默认模式)
scope=spfile 下次启动才能生效
scope=memory 立即生效但下次启动时失效
方法1. 查看动态视图
SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME =‘spfile‘;
方法2. 查看参数
SQL> show parameter spfile
SQL> show parameter pfile
方法1:查询动态视图V$PARAMETER,如果VALUE值为非空,则是SPFILE启动,否则是PFILE。
SELECT name, value, display_value FROM v$parameter WHERE name =‘spfile‘;
方法2:SHOW PARAMETER命令查看
SQL> show parameter spfile;
方法3:通过v$spparameter视图,如果一下查询返回0值,表示你在使用pfile,否则表明你使用的是spfile
SQL> SELECT COUNT(1) FROM v$spparameter WHERE value is not null;
此v$spparameter的值来自于spfile文件定义,并在动态性能视图中显示
二、PFile 和 SPFile的区别
1:PFILE是文本文件的,而SPFILE是二进制格式的。
PFILE文件可以用文本编辑器打开手工配置、而SPFILE不行,只能通过SQL命令在线修改。
从操作系统上可以看到这两者的区别,初始化参数文件为ASCII文本文件,SPFILE为数据文件。
2:SPFILE的修改是可以通过SQL命令在线修改,不再需要通过手工修改,对于动态参数所有更改可以立即生效,而PFILE的修改必须重启实例才能生效。
3:手动创建数据库而不是通过DBCA,则开始创建数据库时,只能定义PFILE。
创建数据库完成后再通过PFILE定义SPFILE
三、Oracle启用参数文件顺序
Step1. spfile<sid>.ora
Unix/Linux缺省存放目录 $ORACLE_HOME/dbs/
Step2. spfile.ora
Unix/Linux缺省存放目录 $ORACLE_HOME/dbs/
Step3. init<sid>.ora
Unix/Linux缺省存放目录 $ORACLE_HOME/dbs/
原文:http://blog.51cto.com/shurk/2064288