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相互转化.
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';
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文件中,所以再次启动后,修改的参数又变回来了。