Pages

Monday, February 23, 2009

Study Oracle : 使用 PFILE/SPFILE

Oracle 使用兩種型式的檔案來儲存參數: PFILE 或 SPFILE。

PFILE 是使用notepad等編輯器即可修改的純文字檔。PFILE 內儲存的 Oracle的各項啟動參數、記憶體配置、檔案位置等。大部份情況下,PFILE可以在 ORACLE_HOME\database 或 ORACLE_HOME\dbs 裡找到。如果你的 ORACLE_SID 名是 test1,PFILE的檔名應該就是 inittest1.ora。

SPFILE使用二進位格式檔案,因此我們不能直接用vi等文字編輯器來修改它。使用SPFILE的最大好處是,一但我們修改它,它將會被永久保存。這代表即使重啟資料庫,它的內容也不會跑掉。這對於一些自動調整的功能來說相當適合,反之,若不用SPFILE是無法使用自動調整的功能的。同樣的,如果你的 ORACLE_SID 名是 test1,SPFILE的檔名會是 spfiletest1.ora。

備份你的PFILE和SPFILE,其中SPFILE還可以用RMAN備份。要將 SPFILE 轉成 PFILE,可用以下指令:
SQL> create pfile from spfile;

檔案將會用預設的檔名和位置產生,然後你就可以用一般檔案備份方式備份PFILE了。當然你也可以用PFILE來產生SPFILE:
SQL> create pfile=/path/initSID.ora from spfile;

如果你使用 SPFILE來設定你的資料庫,那你得先關閉資料庫才能使用這個指令,否則SPFILE將無法被覆寫。

Oracle 會優先使用 SPFILE再來才是 PFILE,當你啟動資料庫,Oracle是以以下順序來使用設定檔的:
- spfileSID.ora
- spfile.ora
- initSID.ora
- init.ora

其中預設的目錄是 ORACLE_HOME\database 或 ORACLE_HOME\dbs,SID代表 ORACLE_SID,你也可以指定使用這個方式指定PFILE:
SQL> startup
pfile=/path/initSID.ora

如果找不到適合的 PFILE/SPFILE ,資料庫將不會啟動。

No comments: