天天看點

我的oracle 9i學習日志(5)--Initialization Parameter Files

啟動instance過程:

<a href="http://luotaoyang.blog.51cto.com/attachment/201002/22/545649_1266831905RA6O.png"></a>

由上圖可知,oracle instance是根據Initialization Parameter Files裡設定的參數來初始化oracle instance的。

Initialization Parameter Files的條目中包含顯示和隐式兩種參數,顯示參數在檔案中明确指出了參數值,隐式參數沒有在檔案中指定,均按oracle預設值。多個Initialization Parameter Files可以同時存在。有兩種類型的Initialization Parameter Files:pfile(Static parameter file)和SPFILE(Persistent server parameter file)。

pfile:

文本檔案,可以用任何辨別的系統文本編輯工具修改。在instance啟動後隻讀,如果裡面的内容被改變隻能在下次啟動instance後才能生效,oracle安裝完後會自動生成一個簡單模闆$ORACLE_HOME/dbs/init.ora。

SPFILE:

二進制檔案,隻能由oracle server修改和維護,隻能位于運作oracle server的機器上(pfile可以位于用戶端),可以被RMAN備份。位置$ORACLE_HOME/dbs/spfileSID.ora。

由pfile建立spfile:CREATE SPFILE = ‘$ORACLE_HOME/dbs/spfileDBA01.ora’ 

FROM PFILE = ‘$ORACLE_HOME/dbs/initDBA01.ora’;(可以在instance啟動前或啟動後建立),在預設情況下可直接這樣用:SQL&amp;gt; CREATE SPFILE FROM PFILE;

由spfile建立pfile:SQL&amp;gt; CREATE PFILE FROM SPFILE;

檢視各個參數:如果是pfile則可以用編輯器打開,如果是spfile則有三種方式:一是由spfile建立pfile,然後再打開pfile;二是利用Linux下的指令strings spfile;三是SQL&amp;gt; show parameter “參數名的頭幾個字母”。

如:SQL&gt; show parameter fast

NAME                     TYPE     VALUE 

------------------------------------ ----------- ------------------------------ 

fast_start_io_target             integer     0 

fast_start_mttr_target             integer     300 

fast_start_parallel_rollback         string     LOW

修改參數(spfile條件下):

ALTER SYSTEM SET parameter_name = parameter_value 

[COMMENT 'text'] [deferred] [SCOPE = MEMORY|SPFILE|BOTH] 

[SID= 'sid'|'*']

comment:添加注釋。

deferred:延遲修改,下次啟動時才修改。

scope:預設both。memory,隻修改記憶體的值,臨時修改,不會改變spfile裡的值。spfile,隻修改spfile裡的值。both,既修改記憶體也修改spfile。對于pfile,scope選項隻能修改memory。

sid:在rac環境下,指定修改那個instance。

例1:

SQL&gt; show parameter fast_start_mttr_target

------------------------------------ ----------- ------------- 

SQL&gt;alter system set fast_start_mttr_target=250;

System altered.

fast_start_mttr_target             integer     250

[oracle@localhost ~]$ strings ./dbs/spfilelty.ora | grep fast_start_mttr_target 

*.fast_start_mttr_target=250

例2:SQL&gt;alter system set fast_start_mttr_target=260 comment='hello world';

SQL&amp;gt; select name, value, update_comment from v$parameter where name='fast_start_mttr_target';

NAME             VALUE          UPDATE_COMMENT 

-------------------- -------------------- -------------------- 

fast_start_mttr_targ 260          hello world 

*.fast_start_mttr_target=260#hello world

例3:

SQL&gt; alter system set fast_start_mttr_target=300 scope=spfile;

------------------------------------ ----------- 

fast_start_mttr_target             integer     260 

*.fast_start_mttr_target=300

延遲修改的參數:

<a href="http://luotaoyang.blog.51cto.com/attachment/201002/22/545649_1266831950BSH6.png"></a>

删除spfile裡的值即将參數值置為預設值:ALTER SYSTEM RESET parameter_name [SCOPE = 

MEMORY|SPFILE|BOTH] [SID= ‘sid’|’*’]

startup指令行為:

當輸入startup指令後,在$ORACLE_HOME/dbs/目錄下查找初始化參數檔案spfileSID.ora,啟動instance;若無這個檔案則查找預設spfile檔案,啟動instance;若無這個檔案則查找initSID.ora這個檔案并啟動instance。

指定一個pfile可以覆寫上述查找順序,如:STARTUP PFILE = $ORACLE_HOME/dbs/initDBA1.ora,直接用指定的pfile啟動instance。在pfile裡可以指定其他spfile,在pfile裡加入SPFILE=&lt;full path and filename&gt;即可。這是唯一能用一個處于其他位置的spfile啟動instance的方法。

本文轉自 d185740815 51CTO部落格,原文連結:http://blog.51cto.com/luotaoyang/277702,如需轉載請自行聯系原作者

繼續閱讀