【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程

北亞資料恢復發表於2023-04-28

資料庫資料恢復環境:

5塊磁碟組建RAID5,劃分LUN供windows伺服器使用;

windows伺服器上部署Sql Server資料庫;作業系統層面劃分了三個邏輯分割槽。


資料庫故障&初檢:

未知原因導致Sql Server資料庫檔案丟失,涉及到數個資料庫和數千張表,不能確定資料儲存位置。資料庫檔案丟失後服務

器仍然在開機執行,所幸沒有大量寫入資料。

1、將故障伺服器內所有硬碟以只讀方式進行全盤映象備份,後續資料分析和資料恢復操作都基於映象檔案進行,避免在恢

複資料的過程中對原始資料造成二次破壞。

2、基於映象檔案分析raid5底層資料,透過分析獲取到的raid相關資訊及內部資料塊資訊重組RAID。

重組RAID:


3、完成RAID重組後提取LUN內的三個邏輯分割槽的映象。

4、掃描檔案系統內丟失檔案,未找到被刪除的資料庫檔案。

5、初檢結果為資料庫檔案丟失,在檔案系統層面無法恢復資料庫資料。


資料庫資料恢復流程:

1、經過初檢後發現資料庫檔案被刪除且無法在檔案系統層面進行恢復後,北亞企安資料恢復工程師決定透過掃描資料頁,

提取頁內記錄的方式來恢復丟失的資料庫資料。

2、使用北亞企安自主開發的資料頁掃描程式掃描分割槽內資料頁並進行提取。掃描兩個分割槽映象後發現系統盤分割槽映象內的

資料頁數量極少且資料頁斷裂情況嚴重,另一分割槽內掃描到的資料頁數量較多,暫定此分割槽為資料庫檔案的儲存空間。

掃描資料頁:


3、Sql Server資料庫使用系統表來管理所有使用者表,系統表內記錄了各表的列數、資料型別及約束資訊等。在對系統表進

行解析的過程中發現提取出來的資料頁內的系統表損壞,無法正常讀取資訊。在與使用者方溝通後得知資料庫有備份檔案,

而且備份完成後也沒有對錶結構進行過大的改動,系統表可用。

4、還原備份:


5、分別提取需要恢復資料的三個庫中各表的表結構資訊。

提取表結構資訊:


6、解析表結構指令碼,將各表的列資訊存入資料庫內便於在後續的資料恢復過程中使用。

掃描指令碼檔案:


將表結構資訊存入資料庫:


7、解析系統表,獲取使用者表id資訊、關聯表結構與資料頁。

8、新建資料庫環境,使用北亞企安自主編寫的軟體解析記錄並匯入到環境內。

9、整理恢復結果。資料庫檔案儲存的分割槽內除了存放資料庫檔案外還存放若干備份檔案,所以在匯出記錄後可能存在重

複資料,需要去重。由北亞企安資料恢復工程師編寫程式進行去重。

資料庫去重:


10、處理完所有資料後交由使用者方驗證資料。使用者方工程師經過反覆查驗後確認恢復資料完整有效。將恢復出來的資料遷

移到使用者方準備好的儲存裝置中。


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

相關文章