Oracle实例参数文件

环境:Oracle11g+XP

参数文件有两类

  • 一类是旧式的init%SID%.ora,就是通常所说的pfile,这是一个文本文件可以手动编辑.
  • 另外一类是9i版本后引入的spfile(stored parameter file),因其驻留在Server端,故又称server parameter file,这是一个二进制文件不能手动编辑.
1. 启动时寻找参数文件的顺序如下.

1.在%ORACLE_HOME%\database目录下寻找spfile%SID%.ORA,找到这用这个文件启动实例.

2.如果spfile%SID%不存在,则寻找%ORACLE_HOME%\database目录下的spfile.ORA.

3.如果spfile.ORA也不存在,最后查找init%SID%.ORA,如果这三个文件都找不到,则Oralce报错,实例无法启动.

当然找到参数文件不一定表示实例一定可以启动,如果参数文件已经损坏,实例也不能启动的.

可以用下面的命令来查看启动当前实例的参数文件,如果是用init%SID%.ORA启动的实例,那么参数spfile没有值.

SQL> show parameter spfile

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
spfile                               string                  F:\APP\ADMINISTRATOR\PRODUCT\11.2.0\HOME\DATABASE\SPFILE.ORA

2.用指定的pfile启动实例,但是我们无法指定启动实例时用哪一个spfile.

SQL> startup pfile="%ORACLE_HOME%\database\myinit.ORA"

3.pfile与spfile相互转化.
使用服务器参数文件spfile创建文本参数文件pfile:
1,SQL> create pfile from spfile='F:\APP\ADMINISTRATOR\PRODUCT\11.2.0\HOME\DATABASE\SPFILEORCL.ORA';
2,SQL> create pfile from spfile;
3,SQL> create pfile='F:\APP\ADMINISTRATOR\PRODUCT\11.2.0\HOME\DATABASE\myinit.ora' from spfile='F:\APP\ADMINISTRATOR\PRODUCT\11.2.0\HOME\DATABASE\SPFILEORCL.ORA';
4,SQL> create pfile='F:\APP\ADMINISTRATOR\PRODUCT\11.2.0\HOME\DATABASE\myinit.ora' from spfile;
 
使用参数文件pfile创建服务器参数文件spfile:
1,SQL> create spfile from pfile='F:\APP\ADMINISTRATOR\PRODUCT\11.2.0\HOME\DATABASE\init%SID%.ora';
2,SQL> create spfile from pfile;
3,SQL> create spfile='F:\APP\ADMINISTRATOR\PRODUCT\11.2.0\HOME\DATABASE\SPFILEORCL.ORA' from pfile='F:\APP\ADMINISTRATOR\PRODUCT\11.2.0\HOME\DATABASE\myinit.ora';
4,SQL> create spfile='F:\APP\ADMINISTRATOR\PRODUCT\11.2.0\HOME\DATABASE\SPFILEORCL.ORA' from pfile;
 4.用spfile和pfile启动实例有何不同?

用spfile启动的实例能把我们用SQL做的系统参数修改保存到对应的SPFILE里,下次再用这个spfile启动实例时,以前的修改仍然有效。

而用pfile启动的实例是不能把修改的系统参数回写到init%SID%.ORA文件中,所以再次启动后,修改的参数又变回来了。

原文地址:https://www.cnblogs.com/princessd8251/p/2978550.html