启动参数文件pfile和spfile
2023-02-01 14:30阅读:
1.oracle实例启动时,寻找参数文件的顺序为
查找文件的顺序是 spfileSID.ora --〉spfile.ora
--〉initSID.ora--〉init.ora (spfile优先于pfile)
2.spfile与pfile的区别
(1)pfile是文本文件,可以使用文本编辑器进行编辑,而spfile是二进制文件,不能使用任何编辑器进行修改,但是可以使用strings查看文件的内容
(2)pfile里面是静态参数,不能在线修改,而spfile里面有动态参数,可以在线修改,而不用重启oracle
3.可以通过以下命令查看oracle使用pfile启动,还是spfile启动
SQL>show parameter spfile

如果value有值,说明是从spfile启动,否则是通过pfile启动
4.oracle的spfile,pfile存放位置
pfile:$ORACLE_HOME/dbs目录下,如果数据库是用dbca创建的话,则在$ORACLE_BASE/admin/ora/pfile还有一个pfile文件,并且在$ORACLE_HOME/dbs目录下创建一个spfileSID.ora的spfile文件
spfile:$ORACLE_HOME/dbs目录下
5.spfile与pfile互相创建
(1)如果oracle是从pfile启动,则可以使用如下命令创建spfile
SQL> create spfile from pfile
(2)如果oracle是从spfile启动,则可以使用以下命令创建pfile
SQL> create pfile from spfile
6.利用pfile启动oracle实例
SQL>STARTUP PFILE = $ORACLE_HOME/dbs/initORCL.ora
一:Linux下oracle数据库丢失pfile导致数据库启动失败

数据库启动参数文件 pfile 丢失导致无法启动
进入 /u01/oracle11g/admin/cuug/pfile 这个文件夹里找到 init.ora 文件,如下

把这个文件复制到 /$ORACLE_HOME/dbs/ 目录下
cp ./init.ora.10202019143019 /$ORACLE_HOME/dbs/
然后 sqlplus / as sysdba 进入,目前是空实例
直接
startup
pfile=/u01/oracle11g/product/11.2.0/dbs/init.ora.10202019143019

参考地址
https://lanzao.blog.csdn.net/article/details/118803169
二.spfile文件丢失 导致数据库无法启动
进入 /u01/oracle11g/admin/cuug/pfile 该目录下找到init.ora 文件
复制到$ORACLE_HOME/dbs/ 目录下
cp ./init.ora.10202019143019 /$ORACLE_HOME/dbs/
先通过startup
pfile=/u01/oracle11g/product/11.2.0/dbs/init.ora.10202019143019
启动数据库
然后通过 pfile创建spfile
SQL>CREATE spfile from
pfile='/u01/oracle11g/product/11.2.0/dbs/init.ora.10202019143019';
$ORACLE_HOME/dbs/ 目录下会生产新的spfile文件
然后重启数据库,可以正常登录了
扩展一下: scope 有3个参数 spfile、memory 和 both
memory 修改动态参数,设置后会立即生效,后面再重新启动数据库服务就失效了,一次性的
both 修改动态参数,设置后会立即生效,重启数据库服务后一直有效
spfile 修改静态参数,设置后需要重启数据库服务才生效