新聞中心
這個是兩年前學習Oracle總結(jié)的東西,不算什么新東西,僅作為個人的一個記錄,也歡迎大家一起學習討論。

主要從事網(wǎng)頁設計、PC網(wǎng)站建設(電腦版網(wǎng)站建設)、wap網(wǎng)站建設(手機版網(wǎng)站建設)、響應式網(wǎng)站開發(fā)、程序開發(fā)、微網(wǎng)站、小程序定制開發(fā)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們在互聯(lián)網(wǎng)網(wǎng)站建設行業(yè)積累了豐富的成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設、網(wǎng)絡營銷經(jīng)驗,集策劃、開發(fā)、設計、營銷、管理等多方位專業(yè)化運作于一體,具備承接不同規(guī)模與類型的建設項目的能力。
Oracle數(shù)據(jù)庫的介質(zhì)恢復過程相對非常復雜,Oracle畢竟作為一個大系統(tǒng),設計是相當復雜和龐大的。鄙人結(jié)合對controlfile,redo log,datafile等文件的dump內(nèi)容進行分析,試圖深入的了解Oracle的介質(zhì)恢復過程。雖不能從正向了解內(nèi)部工作機制,但是從逆向推斷也能做個大致了解,以此增強對Oracle的使用信心吧。
從這里開始吧:
1,獲取media-recovery-start SCN.
檢查所有數(shù)據(jù)文件頭,選擇最小的checkpoint SCN值作為start SCN。
假如獲取到的checkpoint SCN值在數(shù)據(jù)文件的offline的SCN范圍內(nèi),則采用offline-end的SCN。
2,checkpoint structure檢查thread啟動數(shù)量
media-recovery SCN中的checkpoint structure檢查在該SCN點有幾個thread線程啟動了。
3,分配log buffer
為第二步中的每個啟動的thread分配log buffer。
4,打開log文件
--如果log文件在線,系統(tǒng)將會自動打開;
--如果已經(jīng)歸檔,將會提示管理員輸入log文件名稱。
5,分配獨占型media recovery lock
為每個需要執(zhí)行media recovery的數(shù)據(jù)文件分配一個excusive(獨占)media recovery lock。
6,對每個數(shù)據(jù)文件設置fuzzy bit
7,checkpoint bitvec 決定了初始啟動的thread。
8,thread線程讀取相應的redo,并應用于數(shù)據(jù)庫。
9,Media recovery發(fā)生檢查點:
--應用redo文件過程中,需要轉(zhuǎn)換redo文件,每當轉(zhuǎn)換時都會發(fā)生Media Recovery checkpoints。
--當數(shù)據(jù)文件的STOP SCN達到時,也會發(fā)生Media Recovery checkpoints,數(shù)據(jù)文件頭的checkpoint也會被推進到該值。
10,完成media checkpoint
所有的thread完成其對應的redo日志應用,達到數(shù)據(jù)文件的有限STOP SCN值,完成了media recovery;media recovery fuzzy bit被清除,或者叫做重置為(0x0000.00000000 day/month/year hh24:mi:ss);接著更新數(shù)據(jù)文件頭和控制文件,表明了數(shù)據(jù)庫整體一致。
文檔參考:記著開始時從google找到一篇介紹Oracle internal的文章作為了參考,并結(jié)合著dump文件的內(nèi)容才有此體會。要感謝一些那位“默默無聞”的作者。
分享名稱:詳解Oracle介質(zhì)恢復的內(nèi)部過程
文章URL:http://m.5511xx.com/article/coehcgh.html


咨詢
建站咨詢
