oracle資料庫的介質恢復過程相對非常複雜,oracle畢竟作為乙個大系統,設計是相當複雜和龐大的。鄙人結合對controlfile,redo log,datafile等檔案的dump內容進行分析,試圖深入的了解oracle的介質恢復過程。雖不能從正向了解內部工作機制,但是從逆向推斷也能做個大致了解,以此增強對oracle的使用信心吧。
從這裡開始吧:
1,獲取media-recovery-start scn.
檢查所有資料檔案頭,選擇最小的checkpoint scn值作為start scn。
假如獲取到的checkpoint scn值在資料檔案的offline的scn範圍內,則採用offline-end的scn。
2,checkpoint structure檢查thread啟動數量
media-recovery scn中的checkpoint structure檢查在該scn點有幾個thread執行緒啟動了。
3,分配log buffer
為第二步中的每個啟動的thread分配log buffer。
5,分配獨佔型media recovery lock
為每個需要執行media recovery的資料檔案分配乙個excusive(獨佔)media recovery lock。
6,對每個資料檔案設定fuzzy bit
7,checkpoint bitvec 決定了初始啟動的thread。
8,thread執行緒讀取相應的redo,並應用於資料庫。
9,media recovery發生檢查點:
--應用redo檔案過程中,需要轉換redo檔案,每當轉換時都會發生media recovery checkpoints。
--當資料檔案的stop scn達到時,也會發生media recovery checkpoints,資料檔案頭的checkpoint也會被推進到該值。
10,完成media checkpoint
所有的thread完成其對應的redo日誌應用,達到資料檔案的有限stop scn值,完成了media recovery;
media recovery fuzzy bit被清除,或者叫做重置為(0x0000.00000000 day/month/year hh24:mi:ss);
接著更新資料檔案頭和控制檔案,表明了資料庫整體一致。
Oracle檔案恢復成例項的過程
oracle檔案恢復成例項的過程 1.適用條件 www.2cto.com 1.擁有原例項的資料檔案 oracle全路徑最好 比如系統重灌之後,或通過其它的機器上將oracle的冷備進行恢復的情況。這時原有的oracle資料庫檔案還在,但程式及服務無法開啟,需要使用本文所使用的方法進行恢復。2.擁有和...
Oracle資料庫冷備份恢復過程
過程如下 通過v controlfile檢視控制檔案,通過v logfile檢視重做日誌檔案,通過v datafile檢視資料檔案,發現他們都處於同一資料夾中i oracle oradata test中,索性都複製到另一台機器的e oracle oradata test中,複製之前shutdown系...
Oracle恢復(七) 基於時間的恢復
首先有備份 其次知道自己想要恢復到的歷史時間 拷貝備份的所有資料檔案回來,startup mount 啟動到mount狀態 recover database until time 2012 04 10 16 43 01 穿越到今天 呵呵 因為10號發工資,所以喜歡穿越到10號 mediarecove...