伺服器斷電Oracle資料庫修復資料過程

北亞資料恢復發表於2020-05-28

伺服器資料恢復故障

北京某公司的一臺伺服器,上層資料型別為Oracle資料庫,由於伺服器意外斷電,導致資料庫報錯,報錯內容為“system01.dbf需要更多的恢復來保持一致性”。由於客戶的資料庫並沒有備份,僅有一些斷斷續續的歸檔日誌,現在只能透過資料恢復手段來修復Oracle資料庫。


資料恢復常規流程

  1. 檢測資料庫故障情況;

  2.  嘗試掛起並修復資料庫;

  3. 解析資料庫檔案;

  4. 匯出並驗證恢復的資料庫檔案

檢測伺服器及資料庫情況

首先利用dbv命令檢測資料檔案是否是完整的。見下圖所示:

透過上面的截圖我們可以看到,我們檢測的檔案資料塊中有40頁的資料是檢測失敗的狀態。另外有29頁的索引資料也是失敗狀態。除此以外其他檔案均為正常狀態。


掛起並修復資料庫

北亞資料恢復工程師在資料恢復專用伺服器上搭建了一組Windows server 2008 x86環境,並安裝了和客戶原伺服器上相同的資料庫環境,嘗試將資料庫掛起來,檢視資料庫的報錯情況,請見下圖所示;


根據資料庫的報錯情況,北亞資料恢復工程師採取了藉助線上日誌恢復資料的方法,使用recover database命令。

經過一系列的修復發現,由於歸檔日誌不連續,恢復資料庫所需時間段的歸檔日誌缺失,只能使用cancel引數進行不完全資料恢復。

資料恢復工程師再次執行恢復命令,開啟資料庫,查詢例項狀態有無報錯。經過查詢,仍有部分資料包錯,報錯內容為“ora_00600”

透過上圖截圖內容可見,這類資料庫內部錯誤是無法透過命令進行修復的,北亞資料恢復中心工程師藉助expdp/exp工具嘗試對資料庫進行匯出,但這兩個工具匯出資料庫時依然有報錯,資料庫已經不可能進行修復。


解析資料庫檔案獲取資料

使用北亞自主研發的一款dbf解析工具,獲取到客戶資料庫內的資料。如下圖所示:

北亞資料恢復中心工程師獲取到資料庫資料後在資料恢復專用伺服器內搭建資料庫環境,建立資料庫、使用者、分配表空間等。將解析出來的資料庫資料遷移到新資料庫中。使用toad for oracle工具驗證資料。見下圖所示;


匯出資料庫資料並驗證

資料恢復工程師再次使用exp工具將資料庫匯出,匯出命令:
exp system/abc  file=C:\test\dump\zxfg.dmp log=C:\test\dump\zxfg.log owner=zxfg
本次匯出正常,沒有任何報錯。經客戶驗證,Oracle資料庫完整,本次資料恢復圓滿成功。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31380569/viewspace-2694859/,如需轉載,請註明出處,否則將追究法律責任。

相關文章