同事今天问我一个问题,怎么查看数据库是spfile启动的还是pfile启动的,还真没有研究,玩Oracle几年了,都没有留意过这个问题。在网上google了一下。有如下两种方法:
方法一:
SQL> select distinct ISSPECIFIEDfrom v$spparameter;
ISSPEC
------
FALSE
TRUE
如果只有FALSE,使用的是PFILE,
如果有TRUE,说明用的是SPFILE
方法二:
SQL>show parameters spfile
如果有值说明使用spfile启动,反之pfile
测试一:spfile启动情况
Oracle默认是用spfile启动的。直接启动实例,查询:
SQL> show parameters spfile
NAMETYPEVALUE
------------------------------------ ----------- ------------------------------
spfilestringD:/APP/ADMINISTRATOR/PRODUCT/1
SQL> select distinct ISSPECIFIEDfrom v$spparameter;
ISSPEC
------
TRUE
FALSE
测试二:pfile启动情况
先用spfile创建pfile。然后用pfile启动数据库。
SQL> create pfile='D:/orclpfile.ora' from spfile;
文件已创建。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE例程已经关闭。
SQL> startup pfile=d:/orclpfile.ora
ORACLE例程已经启动。
Total System Global Area849530880 bytes
Fixed Size1377896 bytes
Variable Size637536664 bytes
Database Buffers205520896 bytes
Redo Buffers5095424 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter spfile
NAMETYPEVALUE
------------------------------------ ----------- ------------------
spfilestring
SQL> select distinct ISSPECIFIEDfrom v$spparameter;
ISSPEC
------
FALSE
------------------------------------------------------------------------------