1. 程式人生 > >如果只看一篇文章弄懂Pfile與spfile,那麼這篇就夠了……

如果只看一篇文章弄懂Pfile與spfile,那麼這篇就夠了……

PfileParameter File,引數檔案):是基於文字格式的引數檔案,含有資料庫的配置引數預設的名稱為“init+例程名.ora這是一個文字檔案,可以用任何文字編輯工具開啟。

SPfileServer Parameter File,伺服器引數檔案)是基於二進位制格式的引數檔案含有資料庫及例程的引數和數值,但不能用文字編輯工具開啟。屬於二進位制檔案.

1oracle例項啟動時,尋找引數檔案的順序為       spfileSID.ora----->spfile.ora------>initSID.ora

2.spfilepfile的區別  (1

pfile是文字檔案,可以使用文字編輯器進行編輯,而spfile是二進位制檔案,不能使用任何編輯器進行修改,但是可以使用strings檢視檔案的內容  (2pfile裡面是靜態引數,不能線上修改,而spfile裡面有動態引數,可以線上修改,而不用重啟oracle;

PS:什麼是靜態引數,動態引數,如何用?

動態修改引數 alter system set parameter=Value scope=spfile|both|memory};SCOPE引數有三個可選值:MEMORY:記憶體中,只改變當前例項執行,重啟失效;SPFILE:硬碟中,只改變SPFILE的設定,需要重啟生效(如果修改的是靜態引數,則必須指定

SCOPE=SPFILE,否則將會報ORA-02095錯。);BOTH:改變記憶體及SPFILE使用BOTH選項實際上等同於不帶引數的ALTER SYSTEM語句)。

靜態級:pfile,只能通過create pfile from spfile,來編輯修改檔案,只有重啟資料庫才能生效;

動態級:spfile,會話級:alter session,當前會話生效;

                            系統級:alter system +scope

3startup(預設)啟動的順序

1、直接在預設路徑下查詢spfileSID.ora --spfile)如果沒有再查詢

2

2、直接在預設路徑下查詢spfile.ora      如果沒有再查詢3

3、直接在預設路徑下查詢initSID.ora --pfile如果還沒有 就會報錯……

4startup pfile= <> 的方式啟動。

1、指定的pfilestartup pfile=$ORACLE_HOME/dbs/initSID.ora

2、使用spfile啟動,需要變通一下如:vi一個pfile檔案aaa.ora,包含以下內容:spfile=$ORACLE_HOME/dbs/spfileSID.ora

再用startup pfile=$ORACLE_HOME/dbs/aaa.ora啟動即可。

若使用這兩種方式,級別會高於直接用startup啟動的方式。

5可以通過以下命令檢視oracle使用pfile啟動,還是spfile啟動

6.oraclespfile,pfile存放位置

pfile$ORACLE_HOME/dbs目錄下,如果資料庫是用dbca建立的話,則在$ORACLE_BASE/admin/ora/pfile還有一個pfile檔案,並且   在$ORACLE_HOME/dbs目錄下建立一個spfileSID.oraspfile檔案

spfile:$ORACLE_HOME/dbs目錄下

7spfilepfile互相建立 

1)如果oracle是從pfile啟動,則可以使用如下命令建立spfile    

SQL> create spfile from pfile 

2)如果oracle是從spfile啟動,則可以使用以下命令建立pfile     

SQL> create pfile from spfile

8利用pfile啟動oracle例項 

SQL>STARTUP PFILE = $ORACLE_HOME/dbs/initORCL.ora