spfile和pfile

spfile和pfile(转)
spfile和pfile都是数据库的参数文件,pfile是到8i为止的主要参数文件,从9i开始,Oracle采用了一个spfile文件,这种文件不像pfile,它是一个不能用文本编辑器编辑的二进制文件,而pfile则可以直接用notepad编辑。这样做的好处当然是提高了安全性。


    数据库在启动时,调用参数文件的顺序为:
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命令前后注意观察所创建文件的修改时间。

你可能感兴趣的:(spfile和pfile)