Oracle啟動(dòng)文件基礎(chǔ)
?
??? Oracle啟動(dòng)文件的重要性就不說了,總之就是非常重要。之前對這一塊的了解還是比較混亂,所以這次在學(xué)習(xí)DBA知識之前,先把這一塊仔細(xì)學(xué)習(xí)一下。以下內(nèi)容基本上是網(wǎng)上找的資料,因?yàn)閬碓幢容^多,而且內(nèi)容也都是重復(fù),轉(zhuǎn)載地址就不列舉出處了。
?
1、查看數(shù)據(jù)庫是否由SPFILE啟動(dòng):
?
SQL> Select isspecified,count(*) from v$spparameter group by isspecified;
?
ISSPECIFIED?? COUNT(*)
----------- ----------
FALSE????????????? 225
TRUE??????????????? 34
?
V$SPPARAMETER Description: V$SPPARAMETER displays information about the contents of the server parameter file. If a server parameter file was not used to start the instance, then each row of the view will contain FALSE in the ISSPECIFIED column.
?
??? 從v$spparameter的說明來看,只要是該視圖中有TRUE項(xiàng),即表示該數(shù)據(jù)庫由SPFILE啟動(dòng)。
?
?
2、查看SPFILE所在地址:
?
SQL> show parameter spfile
?
NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
spfile?????????????????????????????? string????? %ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA
?
??? 這個(gè)就是基本的默認(rèn)路徑了。
?
?
3、SPLIFE的意義:
?
??? 在9i之前,參數(shù)文件只有PFILE一種,是文本格式的。從9i開始新增了服務(wù)器參數(shù)文件,即SPFILE,是二進(jìn)制格式,無法直接手動(dòng)修改。
??? 現(xiàn)在這兩種參數(shù)文件都可以用來存儲(chǔ)參數(shù)配置以供Oracle讀取,但也有不同點(diǎn),注意以下幾點(diǎn):
??? 第一:PFILE是文本文件,SPFILE是二進(jìn)制文件;
??? 第二:對于參數(shù)的配置,PFILE可以直接以文本編輯器打開手工配置,而SPFILE不行,必須在數(shù)據(jù)庫啟動(dòng)后,通過sql命令進(jìn)行在線修改;
??? 第三:PFILE配置改變后,必須重新啟動(dòng)數(shù)據(jù)庫后才能生效,SPFILE的配置生效時(shí)限和作用域可由SQL命令指定。(有些參數(shù)的修改必須重啟數(shù)據(jù)庫才能生效);
??? 第四: 可用SQL命令由PFILE創(chuàng)建SPFILE,也可以由SPFILE創(chuàng)建PFILE;
??? 第五: 如果是手動(dòng)創(chuàng)建數(shù)據(jù)庫而不是通過DBCA,則開始創(chuàng)建數(shù)據(jù)庫時(shí),你只能定義PFILE
,因?yàn)樗俏谋靖袷降模?br />??? 第六: Oracle啟動(dòng)只使用一個(gè)參數(shù)文件,要么是PFILE,要么是SPFILE,可以通過create pfile方法來鑒別,也可以用show parameter spfile命令,如果值為空,則表示使用的是pfile
?
??? SPFILE改正了PFILE管理混亂的問題。在多結(jié)點(diǎn)的環(huán)境里,PFILE會(huì)有多個(gè)
IMAGE
啟動(dòng)時(shí)候需要跟蹤最新的IMAGE,這是個(gè)煩瑣的過程。用SPFILE以后,所有參數(shù)改變都寫到SPFILE里面(只要定義scope=spfile或both),參數(shù)配置有個(gè)權(quán)威的來源。
?
?
4、SPFILE/PFILE的創(chuàng)建:
?
??? 從spfile獲取pfile:
?
???
Create
pfile
=
'pfile_location'
from
spfile
;
???
Create
pfile
=
'pfile_location'
from
spfile
=
'spfile_location'
;
?
??? 從pfile獲取spfile:
???
Create
spfile
from
pfile
=
'pfile_location'
;
???
Create
spfile
=
'spfile_location'
from
pfile
=
'Your_pfile_location'
;
?
??? 注:可以通過先從SPFILE創(chuàng)建PFILE,然后修改新生成的PFILE,再重新生成SPFILE,這樣會(huì)“比較”安全一些。
??? 另:要修改當(dāng)前在使用的參數(shù)文件,必須將數(shù)據(jù)庫先關(guān)閉,然后重啟生效。必須是SHUTDOWN,STARTUP NOMOUNT也不行。
?
?
5、動(dòng)態(tài)修改參數(shù):
?
??? alter system set parameter=Value scope=spfile|both|memory;
?
???
MEMORY:只改變當(dāng)前實(shí)例運(yùn)行
??? SPFILE:只改變SPFILE的設(shè)置
??? BOTH:改變實(shí)例及SPFILE
?
??? alter session set parameter=Value;
?
??? 也可通過這樣來改變當(dāng)前實(shí)例的參數(shù)
?
?
6、強(qiáng)制使用PFILE啟動(dòng):
?
??? SQL> startup pfile='Your_Pfile.ora';
?
?
7、Oracle啟動(dòng)時(shí)的判定:
?
??? Oracle先去找SPFILE,若沒有找到則使用PFILE啟動(dòng),或還沒有,通過DBS文件夾下的INIT.ORA啟動(dòng)。
?
?
?