pfile :Oracle 9i之前,ORACLE一直采用PFILE方式存儲初始化參數,該文件為文本文件,可以在操作系統級別修改。當spfile文件修改出現錯誤導致oracle無法啟動時,可以使用 pfile文件啟動數據庫
spfile:從Oracle 9i開始,Oracle引入了SPFILE文件,該文件為二進制格式,不能通過手工修改,只能在sql下通過alter system set 修改其中的參數。
如 ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE SCOPE = SPFILE ;
其中 scope有三個參數,分別為
scope=both 立即並永久生效,(默認模式)
scope=spfile 下次啟動才能生效。
scope=memory 立即生效但下次啟動時失效
1.SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile';
2.show parameter spfile
1.執行SELECT ISSPECIFIED,count(*) FROM v$spparameter group by ISSPECIFIED;
如果結果又true值,說明是spfile啟動
2.show parameter spfile 如果value值不為空,則為spfile啟動
1.創建pfile文件
create pfile from spfile; 創建的pfile默認位置在 $ORACLE_HOME/dbs/ initorcl.ora ,initorcl.ora是默認的pfile文件名
create pfile='/home/oracle/pfile' from spfile; 指定pfile的路徑和文件名
2.使用pfile文件啟動數據庫
startup force pfile='?/dbs/initorcl.ora'
create spfile from pfile='/home/oracle/pfile';
因為spfile在數據庫沒有啟動的情況下也能創建,所有通過pfile和spfile的互轉,可以在數據庫無法啟動的情況下修改spfile文件