pfile、spfile区别

    技术2024-10-30  26

    pfile 以文本形式存在,可以用vi编辑器对其中参数进行修改。文件格式为initSID.ora,不可以动态修改,文本编辑过后必须重启数据库才能生效。

    spfile 以二进制文本形式存在,不能用vi编辑器对其中参数进行修改。文件格式为spfileSID.ora,可以动态进行修改(SQL语句),有些不需要重启数据库。

    Oracle启动调用pfile、spfile顺序:

    Oracle启动的时候可以指定pfile进行启动(startup pfile=’’;),如果不指定pfile,则oracle自动会找寻spfile进行启动。所以完整的顺序就是:

    (1)指定的pfile->(2)若指定pfile里有指定的spfile(SPFILE='XXXXXXX/rspfile')-〉(3)再去找该spfile-〉没有就结束-〉(4)若没有指定pfile就去默认路径找spfile.ora-〉(5) 没有就去找 spfile.ora-〉(6)initSID.ora->如果都没有就报错。

    所以pfile和spfile本质上是一样的,只是一个是文本文件一个是二进制文件而已。也就是说你修改pfile可以用文本编辑器直接打开编辑,而spfile要用alter命令从sql里面来修改。记得好像用DBCA创建数据库的时候只有spfile,没有pfile.可以通过create pfile from spfile,来创建。注意,你修改其中一个以后他是不会自动去修改另外一个的。 可以使用Create spfile命令基于数据库的当前参数设置创建一个SPFILE,可以使用ALTER SYSTEM或者ALTER SESSION来动态修改那些可动态修改的参数并且这些更改可以立即生效,你也可以使用ALTER SYSTEM的一个新选项SCOPE来选择使更改只应用于当前实例还是同时应用到spfile。SCOPE参数有三个可选值:MEMORY:只改变当前实例运行;SPFILE:只改变SPFILE的设置(如果修改的是静态参数,则必须指定SCOPE=SPFILE,否则将会报ORA-02095错。);BOTH:改变实例及SPFILE(使用BOTH选项实际上等同于不带参数的ALTER SYSTEM语句)。

    最新回复(0)