【問題處理】恢復因誤生成PFILE 導致RAC的SPFILE無效的問題

secooler發表於2010-06-27
這裡希望提醒大家的是:在RAC環境中輕易不要使用“create pfile from spfile;”命令建立PFILE。
因為在RAC環境,預設情況下的SPFILE會放到共享儲存上(裸裝置或ASM磁碟組上),RAC的每臺主機上是使用PFILE指向SPFILE的方法來完成SPFILE的定位的。
一旦使用“create pfile from spfile;”命令建立PFILE後,新生成的PFILE將覆蓋原有dbs目錄下的PFILE,此後資料庫例項啟動時讀取的將不再是共享儲存上的SPFILE,轉而讀取本地的PFILE檔案的內容。

1.預設情況下$ORACLE_HOME/dbs目錄下的PFILE initracdb.ora中只有一行記錄,記錄著SPFILE的路徑指向。
/oracle/app/oracle/product/10.2.0/db_1/dbs$ cat initracdb1.ora
spfile=+DATA/racdb/spfileracdb.ora

2.此時可以從資料庫引數得到目前使用的是SPFILE啟動的資料庫
SQL> show parameter spfile
NAME            TYPE        VALUE
--------------- ----------- ------------------------------
spfile          string      +DATA/racdb/spfileracdb.ora

3.此時如果使用“create pfile from spfile;”命令建立PFILE,原有PFIEL中的SPFILE指向將被具體的資料庫引數所取代。
當資料庫再次啟動時,因為無法找到SPFILE的位置,將使用PFILE檔案中記錄的具體引數值完成資料庫的啟動,這樣將會給資料庫的管理帶來比較大的影響,不再享受到SPFILE引數的便捷。

4.小結
本文描述的是一個常識性的問題,希望大家在對RAC資料庫進行維護和管理的過程中不要因此給自己帶來不必要的麻煩。
如果出現了這樣的問題該如何處理呢?方法比較簡單,將PFILE的內容恢復為具有SPFILE指向的內容即可,也許在具體場景中需要重新建立SPFILE。

Good luck.

secooler
10.06.27

-- The End --

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

相關文章