PFILE和SPFILE介紹
一、PFILE
Pfile(ParameterFile,參數(shù)文件)是基于文本格式的參數(shù)文件,含有數(shù)據(jù)庫的配置參數(shù)。
1、PFILE -initSID.ora(默認PFILE名稱),位置在$ORACLE_HOME/dbs目錄下面。 這是一個文本文件,可以用任何文本編輯工具打開。
2、創(chuàng)建PFILE
cp init.ora $ORACLE_HOME/dbs/initorcl.ora
編輯initorcl.ora文件,修改適合自己的參數(shù)。建議不要使用oracle提供的初始化參數(shù),這個文檔有點老。
需要修改的名字有:
db_name=wilson
#添加db_block_size
db_block_size=8192
control_files=('目錄/control01.ctl','目錄/control02.ctl','目錄/control03.ctl')
二、SPFILE:Oracle9i之后引入的概念
SPfile(ServerParameter File,服務(wù)器參數(shù)文件)是基于二進制格式的參數(shù)文件,含有數(shù)據(jù)庫及例程的參數(shù)和數(shù)值,但不能用文本編輯工具打開。
動態(tài)修改參數(shù)
alter system set parameter=Value
scope={spfile|both|memory};
SCOPE參數(shù)有三個可選值:
MEMORY:只改變當(dāng)前實例運行;
SPFILE:只改變SPFILE的設(shè)置(如果修改的是靜態(tài)參數(shù),則必須指定SCOPE=SPFILE,否則將會報ORA-02095錯);
BOTH:改變實例及SPFILE(使用BOTH選項實際上等同于不帶參數(shù)的ALTER SYSTEM語句)。
SPFILE->spfileSID.ora,位置在$ORACLE_HOME/dbs目錄下面
根據(jù)PFILE創(chuàng)建SPFILE, 在啟動Instance實例之前或之后都可以創(chuàng)建SPFILE。
CREATE SPFILE = ‘$ORACLE_HOME/dbs/spfileDBA01.ora’ FROM PFILE =‘$ORACLE_HOME/dbs/initDBA01.ora;
也可以使用缺省的方式來創(chuàng)建SPFILE
create spfile from pfile;
查看SPFILE等二進制文件使用
strings spfilewilson.ora
修改SPFILE的內(nèi)容:
alter system set parameter=value<comment='text'><deferred><scope=memory|spfile|both><sid='sid|*'>
其中deferred表示延遲生效,可以通過show parameterfast_start_查看fast_start_開頭的所有參數(shù)是否已經(jīng)生效。
刪除或重置SPFILE參數(shù)回缺省值:
alter system set undo_suppress_errors=true;
alter system reset undo_suppress_errors scope= bothsid='*';
三、根據(jù)SPFILE創(chuàng)建PFILE
【注意】在進入sqlplus后就可以創(chuàng)建,不一定要啟動數(shù)據(jù)庫。還有lock_sga參數(shù)只能在AIX操作系統(tǒng)中有效,在linux和unix中是無效的,讓SGA盡量駐留內(nèi)存的辦法就是修改SGA區(qū)的內(nèi)存大小。
create pfile from spfile;
四、Oracle的啟動順序
用startup(默認)啟動的順序
1、直接在默認路徑下查找spfileSID.ora--(spfile)
如果沒有再查找2
2、直接在默認路徑下查找spfile.ora
如果沒有再查找3
3、直接在默認路徑下查找initSID.ora--(pfile)
如果還沒有 就會報錯……
用startup pfile=的方式啟動。
1、指定的pfile:
startuppfile=$ORACLE_HOME/dbs/initSID.ora
2、使用spfile啟動,需要變通一下如:vi一個pfile文件aaa.ora,包含以下內(nèi)容:
spfile=$ORACLE_HOME/dbs/spfileSID.ora
再用startuppfile=$ORACLE_HOME/dbs/aaa.ora啟動即可。
若使用這兩種方式,級別會高于直接用startup啟動的方式。