简单的说:
1、pfile 文本文件 client端参数文件;不能动态修改,可以用普通的编辑器修改,修改之后需要重启。pfile可能会导致服务器启动不一致,因为可以在客户端启动。
2、spfile 二进制文件 服务器端参数文件,有了spfile,oracle可以实现动态参数在线修改,部分参数修改之后无需重启。但是,因为是二进制文件,所以不能用普通的编辑器修改,要用alter命令从sql里面来修改。spfile保证服务器每次的启动都是一致的。只有spfile而没有pfile文件时,可以通过:
create pfile='位置+名字' from spfile;
如:
create pfile='E:\ORACLE\PRODUCT\10.2.0\DB_1\DBS\spfileorcl_bak.ora' from spfile;
进行创建pfile文件。
同理,只有pfile而没有spfile时,可以通过:
create spfile='位置+名字' from pfile;
进行创建spfile文件。pfile和spfile二者可以互相备份。
3、通过spfile或pfile启动数据库:
(1)startup nomount启动方式,查找文件的顺序是 spfileSID.ora-〉spfile.ora-〉initSID.ora-〉init.ora(spfile优先于pfile)。
(2)startup pfile='文件目录'----通过pfile文件启动;
(3)startup spfile='文件目录'----通过spfile文件启动。
以下转自:
http://www.cnblogs.com/jacktu/archive/2008/02/27/1083232.html
查看系统是以pfile还是spfile启动
Select isspecified,count(*) from v$spparameter group by isspecified;
如果isspecified里有true,表明用spfile进行了指定配置
如果全为false,则表明用pfile启动
使用SPfile的好处
Spfile改正了pfile管理混乱的问题,在多结点的环境里,pfile会有多个image
启动时候需要跟踪最新的image。这是个烦琐的过程。
用spfile以后,所有参数改变都写到spfile里面(只要定义scope=spfile或both),参数配置有个权威的来源。
查看spfile location
show parameter spfile
从spfile获取pfile
Create pfile='d:pfileSID.ora' from spfile;
Create pfile='d:pfileSID.ora' from spfile='spfile_location';
从pfile获取spfile
Create spfile from pfile='Your_pfile_location'
Create spfile='spfile_location' from pfile='Your_pfile_location'
动态修改参数
alter system set parameter=Value scope=spfile|both|memory
Startup nomo