自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