oracle的spfile和pfile区别及联系

pfile:文本参数文件,文本文件,用户可以直接修改文件内容,命名为pfile+SID.ora

spfile:服务器参数文件,二进制文件,命名为spfile+SID.ora,SID为实例名

默认存放路径:

$ORACLE_HOME/dbs(linux)

$ORACLE_HOME/database(windows)


启动顺序:

spfileSID.ora->spfile.ora->initSID.ora->init.ora(spfile优先于pfile,自动按顺序寻找启动)

1.以spfileSID.ora方式启动,spfile不能指定,启动时oracle会自动在$ORACLE_HOME/dbs目录寻找这个文件spfile+SID.ora

oracle的spfile和pfile区别及联系

2.以指定pfile的方式启动

oracle的spfile和pfile区别及联系

3.以init.ora方式启动数据库,spfileorclA.ora已删除,启动直接为startup

oracle的spfile和pfile区别及联系

4.当init.ora和initorclA.ora及spfileorclA.ora都不存在时,可通过oracle备份的spfile打开数据库:

oracle的spfile和pfile区别及联系oracle的spfile和pfile区别及联系

5.当pfile不存在,只存在spfile时,可通过spfile创建pfile,未指定路径时默认在$ORACLE_HOME/dbs

create pfile='/u01/initorclA.ora'from spfile;

oracle的spfile和pfile区别及联系


6.当spfile不存在时,只存在pfile时,可通过pfile创建spfile,未指定路径时默认在$ORACLE_HOME/dbs

指定路径方式创建:create spfile='/u01/spfileorclA.ora‘ ’from pfile;

oracle的spfile和pfile区别及联系


总结:pfile和spfile可相互创建,另外oracle admin目录下已备份pfile文件,如果$ORACLE_HOME/dbs下无pfile,spfile和init.ora,可拷贝该备份的pfile文件到任意目录下,重命名为init+SID.ora,启动时指定该文件就可以启动数据库了,如下:

oracle的spfile和pfile区别及联系

spfile与pfile之间可以相互切换备份,最好两者都有备份文件,最好是在一个日期同时备份的,这样便于恢复时的一致性