控制文件是個(gè)相當(dāng)小的二進(jìn)制文件,最多能增長(zhǎng)到64m左右。參數(shù)文件告訴實(shí)例控制文件的位置。而控制文件告訴實(shí)例:數(shù)據(jù)庫(kù)名,數(shù)據(jù)文
其實(shí),蠻蛋疼的,體系結(jié)構(gòu)要想深入的理解,還需要配合后續(xù)的備份與恢復(fù)的實(shí)驗(yàn)和原理。但不管啦,先稍微了解一下。
控制文件是個(gè)相當(dāng)小的二進(jìn)制文件,最多能增長(zhǎng)到64m左右。
參數(shù)文件告訴實(shí)例控制文件的位置。而控制文件告訴實(shí)例:數(shù)據(jù)庫(kù)名,數(shù)據(jù)文件的名稱(chēng)及其位置,在線(xiàn)重做日志文件的名稱(chēng)及其位置,以及系統(tǒng)和各個(gè)數(shù)據(jù)文件的SCN信息。
我們的Oracle內(nèi)部的幾個(gè)人,都比較喜歡往ctl上面寫(xiě)東東,比如:
server process會(huì)把數(shù)據(jù)庫(kù)結(jié)構(gòu)的變化更新到control file
LGWR會(huì)把當(dāng)前日志序列號(hào)記錄到control file
CKPT會(huì)把檢查點(diǎn)信息記錄到control file
ARCn會(huì)把歸檔日志信息記錄到control file
有了以上的信息,因此,在mount階段,SMON會(huì)去讀控制文件,確認(rèn)它上面的記錄是否正確:
1)上次關(guān)機(jī)的SCN A
上次關(guān)機(jī)的checkpoint B
2)日志組最后一條的記錄 C
RBA指針的位置 D
若正常關(guān)機(jī),則 A=B C=D
若不正常關(guān)機(jī),則 A>B D>C
這時(shí),,就需要派SMON去前滾,按重做日志的記錄在內(nèi)存中重做一遍,直到C=D。
以下是我的控制文件的部分摘錄:
平臺(tái)是:RHEL-5.8 ora10g
*** SERVICE NAME:() 2012-07-10 10:09:23.691
*** SESSION ID:(159.3) 2012-07-10 10:09:23.691
Thread 1 checkpoint: logseq 17, block 2, scn 676899
cache-low rba: logseq 17, block 40599
on-disk rba: logseq 17, block 40868, scn 697180
start recovery at logseq 17, block 40599, scn 0
我們對(duì)控制文件的一些常見(jiàn)操作,比如:
1)如何多路鏡像控制文件?
正常關(guān)機(jī),cp一份,修改pfile,生成spfile,重啟數(shù)據(jù)庫(kù)
2)查看控制文件的位置?
i SQL> show parameter control_files
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/app/oracle/oradata/ORCL/c
ontrolfile/o1_mf_7xzsjpnk_.ctl
, /u01/app/oracle/flash_recove
ry_area/ORCL/controlfile/o1_mf
_7xzsjq6j_.ctl
ii SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/controlfile/o1_mf_7xzsjpnk_.ctl
/u01/app/oracle/flash_recovery_area/ORCL/controlfile/o1_mf_7xzsjq6j_.ctl
iii SQL> select value from v$parameter where;
VALUE
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/controlfile/o1_mf_7xzsjpnk_.ctl, /u01/app/oracle/fl
ash_recovery_area/ORCL/controlfile/o1_mf_7xzsjq6j_.ctl
3)查看控制文件的內(nèi)容?
alter database backup controlfile to trace;
然后到udump下去找
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com