判断ORACLE启动时使用spfile还是pfile

Posted ClarkYu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断ORACLE启动时使用spfile还是pfile相关的知识,希望对你有一定的参考价值。

Oracle 9i以后启动的时候默认使用的初始化文件是spfile,我们可以通过如下三种方式来判断是SPFILE还是PFILE方式启动数据库。
1、show parameter spfile
2、show parameter pfile
3、看v$spparameter视图

1、通过查看spfile、pfile视图
用spfile启动数据库:
SQL> show parameter pfile;
NAME                                 TYPE     VALUE
------------------------------------ -------- ------------------------------
spfile                               string   C:\ORACLE\PRODUCT\10.2.0\DB_1\
                                              DATABASE\SPFILEWWL.ORA
SQL> show parameter spfile;
NAME                                 TYPE     VALUE
------------------------------------ -------- ------------------------------
spfile                               string   C:\ORACLE\PRODUCT\10.2.0\DB_1\
                                              DATABASE\SPFILEWWL.ORA
用pfile启动数据库
SQL> startup pfile=c:\initwwl.ora
ORACLE instance started.
Total System Global Area 1610612736 bytes
Fixed Size                  2066080 bytes
Variable Size             385878368 bytes
Database Buffers         1207959552 bytes
Redo Buffers               14708736 bytes
Database mounted.
Database opened.
SQL> col type format a8
SQL> show parameter pfile;
NAME                                 TYPE     VALUE
------------------------------------ -------- ------------------------------
spfile                               string
SQL> show parameter spfile;
NAME                                 TYPE     VALUE
------------------------------------ -------- ------------------------------
spfile                               string
SQL> 


我们在这里可以很明显的发现,使用spfile启动数据库,在查看show parameter pfile和show parameter spfile 都能看到spfile参数文件的路径。
反之使用pfile启动的数据库,我们无论是查看show parameter pfile还是show parameter spfile 都无法看到pfile参数文件的路径。

2、通过v$spparameter视图
   使用spfile启动数据库,我们可以看到查询出来的结果是spfile
SQL> select decode(count(*),1,‘spfile‘,‘pfile‘) from v$spparameter where rownum=1 and isspecified = ‘TRUE‘;

DECODE(COUNT
------------
spfile


使用pfile启动数据库,我们可以看到查询出来的结果是pfile。
SQL> select decode(count(*),1,‘spfile‘,‘pfile‘) from v$spparameter where rownum=1 and isspecified =‘TRUE‘;
DECODE(COUNT
------------
pfile




























































以上是关于判断ORACLE启动时使用spfile还是pfile的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中的pfile和spfile详解

oracle中spfile和pfile详解

Oracle spfile 参数文件

Oracle spfile 参数文件

Oracle基础 07 参数文件 pfile/spfile

oracle不能用spfile启动,怎么解决