数据库在启动时,调用参数文件的顺序为:
1)spfile
2)pfile
一般配置中不指定用PFILE文件启动的话默认都是以SPFILE文件启动,可以通过下面的指令来查看是以pfile还是spfile启动,如果isspecified里有true,表明用spfile进行了指定配置,如果全为false,则表明用pfile启动。
select isspecified,count(*) from v$spparameter group by isspecified;
上述2个文件所在目录可以通过show parameter pfile|spfile 查看,不过用pfile和spfile查出来的都是同一个参数,因为一次只能用一个参数文件。
SQL> show parameters spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string E:/ORACLE/PRODUCT/10.2.0/DB_1/DBS/SPFILESQDSS.ORA
SQL> show parameters pfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string E:/ORACLE/PRODUCT/10.2.0/DB_1/DBS/SPFILESQDSS.ORA
由于SPFILE是二进制,无法直接修改,可以通过以下步骤来实现:
1)备份好原始的SPFILE和PFILE文件;
2)利用SPFILE生成PFILE:
SQL> create pfile from spfile;
3)修改PFILE文件,所要修改的参数名称如果记不住可以使用show parameters来查看;
4)指定PFILE启动数据库,查看修改的参数是否启用
SQL>shutdown immediate;
SQL>startup pfile='f:/此处为放置PFILE的目录/initSID.ora';
此处如果PFILE在默认目录则不用加路径,直接文件名即可。
5)数据库启动后用show parameters查看修改的参数是否生效,如果生效继续下一步,否则检查重复前面步骤;
6)用PFILE生成SPFILE,指令为:
SQL>create spfile from pfile'f:/此处为放置PFILE的目录/initSID.ora';
7)停止数据库,用SPFILE启动:
SQL>startup;
8)数据库启动后用show parameters查看修改的参数是否生效,如果已经是修改过的值则大功告成,中途每次使用create命令前后注意观察所创建文件的修改时间。