【資料庫資料恢復】Sql Server資料庫資料恢復案例

北亞資料恢復發表於2022-05-27

資料庫資料恢復環境:

5塊2T硬碟組建RAID5;

劃分LUN供windows伺服器使用;

Sql Server2008資料庫;

儲存空間有三個邏輯分割槽。


資料庫故障:

資料庫檔案丟失,涉及到5個資料庫,表約6000個,丟失原因未知,且不能確定資料儲存位置。在檔案丟失後伺服器仍處於

開機狀態,但並未寫入大量資料。


初檢流程:

1、使用RAID資訊及內部資料塊資訊重組RAID。


重組RAID


2、提取LUN內三個分割槽映象。

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

4、初檢結果為資料庫檔案丟失,透過檔案系統無法恢復。


資料庫恢復流程:

1、制定恢復方案。在資料庫檔案被刪除且判定為無法恢復檔案後,只能透過掃描資料頁,並提取頁內記錄的方式進行恢復。

2、使用北亞自主編寫的資料頁掃描程式掃描分割槽內資料頁並提取。在分別掃描兩個分割槽映象後發現500G系統盤內資料頁數

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


掃描資料頁


3、重組系統表。Sql Server資料庫使用系統表來管理所有使用者表,在這些系統表內記錄了各表的列數、資料型別及約束信

息等。解析系統表過程中發現提取出的資料頁內系統表損壞,無法正常讀取資訊。在與管理員溝通後得知有備份檔案,且備

份完成後沒有大量改動表結構,系統表可用。

4、還原備份。


還原備份


5、分別提取三個庫中各表的表結構資訊。


提取表結構資訊


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


掃描指令碼檔案


表結構資訊存入資料庫


7、解析系統表獲取使用者表id資訊、關聯表結構與資料頁。(為保護隱私,後續步驟涉及使用者表表名及資料頁內資料部分均

未截圖)

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

9、整理恢復結果。在此分割槽內除資料庫檔案外還存有備份檔案若干,所以在匯出記錄後可能存在重複資料,必須去重。數

據恢復工程師編寫SQL儲存過程進行去重。


資料庫去重


10、驗證資料。管理員在查驗過資料後表示沒有問題,移交資料到管理員準備好的儲存裝置,恢復成功。


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

相關文章