(轉)Oracle中的啟動引數檔案:spfile和pfile

mahanso發表於2011-08-04

首先,說明SID是Oracle資料庫的例項ID,用來唯一標識一個例項(通常也就是一個Oracle資料庫)。 

1,pfile檔案是Oracle8i以前的啟動引數檔案(之後的9i,10g,11g中也能找到它)。以文字形式存在,可以用vi編輯器對其中引數進行修改。檔案格式為init.ora或 initSID.ora; 

     檔案位置在:在10.0.2\admin\例項名\pfile\資料夾下有個init.ora.xxxxxxxxxxx 檔案,後面的xxxxxxxxxxx 是時間戳。

2, spfile用於Oracle9i之後的版本,以二進位制文字形式存在,不能用vi編輯器對其中引數進行修改。檔案格式為spfileSID.ora(spfile.ora的話就是所有例項通用的引數檔案)。

    (1)如果要對spfile檔案進行修改,可以在資料庫執行時採用SQL語言: 

 

  SQL> ALTER SYSTEM SET PARAMETER = 'VALUES';進行修改。 

 

  ALTER SYSTEM還有選項:SCOPE。SCOPE引數有三個可選值:MEMORY ,SPFILE , BOTH
  MEMORY:只改變當前 例項執行
  SPFILE:只改變SPFILE的設定

  BOTH:改變例項及SPFILE

 

     用spfile以後,所有引數改變都可以寫到spfile裡面(只要定義scope=spfile或both):

      SQL> ALTER SYSTEM SET PARAMETER = 'VALUES' SCOPE=SPFILE; 

 

  (2)如果不方便使用SQL語句對spfile進行操作,可以先透過SQL語句: 
 

  SQL> CREATE Spfile FROM pfile; 這種方法將二進位制文字形式的spfile轉換成文字形式的pfile格式,然後再用vi編輯器對其中的引數進行直觀修改,以達到方便的目的。

 

      修改完成之後還能透過語句 、將文字形式的pfile格式轉換回二進位制文字形式的spfile

  SQL> CREATE pfile FROM Spfile; 

 

      (3)Spfile改正了pfile管理混亂的問題,在多結點的環境裡,pfile會有多個image,啟動時候需要跟蹤最新的image。spfile保證伺服器每次的啟動都是一致的,pfile可能會導致啟動不一致。因為pfile可以在客戶端啟動。

 

3,spfile  可以在資料庫執行時動態修改引數,有些不需要重啟資料庫,特殊的還要重啟才能生效。

而pfile 不能動態修改資料庫引數,文字編輯後必須重啟資料庫

 

 

4,啟動時的查詢順序:
spfile.ora > spfile.ora > init.ora  (也就是說spfile優先於pfile,而且本例項設定優先於全域性設定)

 

也可以在啟動時指定用哪個檔案: 

SQL>startup pfile='Your_Pfile.ora'
SQL>startup spfile='\product\11.1.0\db_1\database\SPFILE_SINKA.ORA' force 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12272958/viewspace-704126/,如需轉載,請註明出處,否則將追究法律責任。

相關文章