一、pfile和spfile区别和联系
- pfile是文本文件的,而spfile是二进制格式的。
- pfile默认init+实例名.ora ,是一个文本文件,可以编辑
- spfile默认spfile+init+实例名.ora,是一个二进制文本,不能修改
- 两个文件可以通过命令create pfile from spfile或者create spfile from pfile来创建
二、辨别数据库使用spfile还是pfile
- pfile进行参数修改:直接进行编辑修改
- spfile进行参数修改:alter system/alter session
三、判断数据库是通过spfile启动还是通过pfile启动:
方法一:
select distinct isspecified from v$spparameter;
第一个值为true代表为spfile启动,为false表示pfile启动;
方法二:
直接修改系统参数,如果提示无法修改spfile代表为pfile启动
四、确定参数属性
视图 v$parameter 中 ISSYS_MODIFIABLE 列能够查看参数属性,ISSYS_MODIFIABLE ='IMMEDIATE’为动态参数、 ISSYS_MODIFIABLE =‘FALSE’ 为静态参数 、 ISSYS_MODIFIABLE =‘DERERRED’ 为延迟参数(当前会话不生效,后续的会话有效)。
例如:
- 查询processes参数属性为false,即静态参数。数据库通过spfile启动。
- 修改该系统参数命令:
alter system set processes=150 scope=spfile;
五、修改参数
可以通过ALTER SYSTEM或者导入导出来更改SPFILE的内容。ALTER SYSTEM增加了一个新选项:SCOPE。SCOPE参数有三个可选值:MEMORY ,SPFILE , BOTH
- MEMORY:只改变当前实例运行
- SPFILE:只改变SPFILE的设置
- BOTH:改变实例及SPFILE
注意:不带参数的ALTER SYSTEM语句等同于scope=both,如果修改静态参数,那么需要指定SPFILE参数,否则将会报错。
参考资源:ORACLE初始化参数文件SPFILE、PFILE介绍
转自:Oracle参数文件之pfile和spfile_lFang Li的博客-CSDN博客_oracle spfile