一、摘要
ORACLE中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件,可以分为两种类型PFile and SPFile。
它们是在数据库实例启动时候加载的,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。
初始化参数文件(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/
使用BOTH选项实际上等同于不带参数的ALTER SYSTEM语句
select name,value,ISSYS_MODIFIABLE from v$parameter;
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。