Oracle學(xué)習(xí)筆記:?jiǎn)⑼?shù)據(jù)庫(kù)實(shí)例、初始化參數(shù)
1、啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù)實(shí)例
sqlplus /nolog |
2、靜態(tài)參數(shù)文件
在Oracle 9i 之前,通過(guò)靜態(tài)文本存放初始化參數(shù),可通過(guò)文本編輯器編輯。
在參數(shù)文件中,可以為相同的參數(shù)設(shè)置多個(gè)條目,對(duì)于這樣的重復(fù)參數(shù),Oracle會(huì)選最后一個(gè)。
在Oracle 9i之前,如果在啟動(dòng)實(shí)例時(shí)沒(méi)有指定參數(shù)文件,那么Oracle會(huì)首先在默認(rèn)的目錄下查找initSID.ora文件,Linux的默認(rèn)目錄是$ORACLE_HOME/dbs,Windows的默認(rèn)目錄是$ORACLE\database;如果沒(méi)找到,會(huì)查找init.ora是否存在;如果沒(méi)找到,就會(huì)報(bào)錯(cuò):在處理系統(tǒng)參數(shù)時(shí)失敗,不能打開(kāi)參數(shù)文件。
在啟動(dòng)時(shí),也可以直接指定pfile,命令為:
startup pfile = ’你的路徑/你的pfile文件名.ora‘
3、動(dòng)態(tài)參數(shù)文件
從Oracle 9i開(kāi)始,提供了動(dòng)態(tài)參數(shù),也就是修改了內(nèi)存中的參數(shù)值后,不用重啟,就能使參數(shù)生效的機(jī)制,同時(shí)提供了動(dòng)態(tài)參數(shù)文件spfile,這是一個(gè)二進(jìn)制文件,不能用notepa或者vi編輯器編輯,如果希望對(duì)參數(shù)的修改持久化,那么也必須修改spfile中的參數(shù)值。
另外,rman支持對(duì)spfile的自動(dòng)備份,但不支持pfile的自動(dòng)備份。
在參數(shù)文件中,每個(gè)參數(shù)都有一個(gè)前綴,* 表示對(duì)所有實(shí)例有效,“實(shí)例名稱”表示只對(duì)這個(gè)實(shí)例有效。
由于加了動(dòng)態(tài)參數(shù)文件,系統(tǒng)在啟動(dòng)時(shí),查找參數(shù)文件的順序也有所變化:默認(rèn)路徑下的spfileSID.ora --> spfile.ora - -> initSID.ora --> init.ora,startup pfile ='...'這樣的命令還是有用的,注意不支持這樣的語(yǔ)法:startup spfile = ’...' 。
通過(guò)pfile來(lái)創(chuàng)建spfile,如果下面的命令不指定路徑,那么用的都是默認(rèn)路徑:
create spfile =’/u01/app/oracle‘ from pfile = '/u01/app/oracle/initora10g.ora'
--禁用自動(dòng)內(nèi)存管理
alter system set sga_target = 0
--顯示參數(shù)的值
show parameter spfile
show parameter shared_pool_size
--另一種方法顯示參數(shù)的值
select value from v$parameter where name = 'spfile'
select value from v$spparameter where name = 'shared_pool_size'
--只在內(nèi)存中修改參數(shù)的值,重啟后,還是spfile的值,而不是這里的100M
alter system set shared_pool_size = 100M scope = memory
--只在spfile文件中修改參數(shù)的值,重啟后才會(huì)生效
alter system set shared_pool_size = 100M scope = spfile
--同時(shí)修改spfile和內(nèi)存中的值
alter system set shared_pool_size = 100M scope = both
下面顯示了,如果把spfile中的一個(gè)參數(shù)設(shè)置為一個(gè)無(wú)效的值后,如何解決系統(tǒng)再次啟動(dòng)時(shí),無(wú)法啟動(dòng)的問(wèn)題:
alter system set sga_target = 1000000M scope = spfile |
報(bào)錯(cuò):out of memory
alter system set sga_target = 1000M
報(bào)錯(cuò):oracle 不可用
create pfile = '/u01/init.ora' from spfile
可以打開(kāi)pfile文件,手動(dòng)編輯,也可以直接在文件最后加一行:
!echo '*.sga_target = 1000M' >> /u01/init.ora |
4、實(shí)例的啟動(dòng)和關(guān)閉的具體步驟
nomount階段:找到參數(shù)文件,并根據(jù)其中的值啟動(dòng)實(shí)例,打開(kāi)告警日志 alterSID.log,路徑為backgroud_dump_dest參數(shù)所指定的目錄。
mount階段:根據(jù)參數(shù)文件中的control_files參數(shù)的值,打開(kāi)所有的控制文件,只要有一個(gè)打開(kāi)失敗,就不能成功進(jìn)入mount階段。打開(kāi)文件后,取得所有的數(shù)據(jù)文件、聯(lián)機(jī)日志文件的路徑,但不會(huì)驗(yàn)證這些文件是否存在。
open階段:打開(kāi)所有的數(shù)據(jù)文件、聯(lián)機(jī)日志文件。
具體的啟動(dòng)步驟可以是下面的一種:
startup nomount |
實(shí)例關(guān)閉時(shí),有多個(gè)選項(xiàng):
abort:相當(dāng)于模擬服務(wù)器突然斷電的情況。
immediate:強(qiáng)制回滾當(dāng)前正在運(yùn)行的所有事務(wù),把內(nèi)存中的臟數(shù)據(jù)寫入數(shù)據(jù)文件,清空實(shí)例的所有內(nèi)存。一般采用這個(gè)選項(xiàng)。
transactional:等待當(dāng)前正在運(yùn)行的事務(wù)主動(dòng)提交或回滾,之后中斷所有連接,寫回?cái)?shù)據(jù)文件,清空實(shí)例內(nèi)存。
normal:等待當(dāng)前正在運(yùn)行的事務(wù)主動(dòng)提交或回滾,同時(shí)還會(huì)等待所有用戶主動(dòng)中斷連接。
需要注意的是startup force相當(dāng)于 shutdown abort ,然后再 startup
posted on 2013-09-16 09:29 順其自然EVO 閱讀(481) 評(píng)論(0) 編輯 收藏 所屬分類: 數(shù)據(jù)庫(kù)