天天看點

【資料庫資料恢複】raid5下Sql Server資料庫資料恢複案例

資料庫資料恢複環境:

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

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

資料庫故障&初檢:

未知原因導緻Sql Server資料庫檔案丢失,涉及到數個資料庫和數千張表,不能确定資料存儲位置。資料庫檔案丢失後伺服器仍然在開機運作,所幸沒有大量寫入資料。

1、将故障伺服器内所有硬碟以隻讀方式進行全盤鏡像備份,後續資料分析和資料恢複操作都基于鏡像檔案進行,避免在恢複資料的過程中對原始資料造成二次破壞。

2、基于鏡像檔案分析raid5底層資料,通過分析擷取到的raid相關資訊及内部資料塊資訊重組RAID。

重組RAID:

【資料庫資料恢複】raid5下Sql Server資料庫資料恢複案例

北亞企安資料恢複——SQL SERVER資料庫資料恢複

3、完成RAID重組後提取LUN内的三個邏輯分區的鏡像。

4、掃描檔案系統内丢失檔案,未找到被删除的資料庫檔案。

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

資料庫資料恢複流程:

1、經過初檢後發現資料庫檔案被删除且無法在檔案系統層面進行恢複後,北亞企安資料恢複工程師決定通過掃描資料頁,提取頁内記錄的方式來恢複丢失的資料庫資料。

2、使用北亞企安自主開發的資料頁掃描程式掃描分區内資料頁并進行提取。掃描兩個分區鏡像後發現系統盤分區鏡像内的資料頁數量極少且資料頁斷裂情況嚴重,另一分區内掃描到的資料頁數量較多,暫定此分區為資料庫檔案的存儲空間。

掃描資料頁:

【資料庫資料恢複】raid5下Sql Server資料庫資料恢複案例

北亞企安資料恢複——SQL SERVER資料庫資料恢複

3、Sql Server資料庫使用系統表來管理所有使用者表,系統表内記錄了各表的列數、資料類型及限制資訊等。在對系統表進行解析的過程中發現提取出來的資料頁内的系統表損壞,無法正常讀取資訊。在與使用者方溝通後得知資料庫有備份檔案,而且備份完成後也沒有對表結構進行過大的改動,系統表可用。

4、還原備份:

【資料庫資料恢複】raid5下Sql Server資料庫資料恢複案例

北亞企安資料恢複——SQL SERVER資料庫資料恢複

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

提取表結構資訊:

【資料庫資料恢複】raid5下Sql Server資料庫資料恢複案例

北亞企安資料恢複——SQL SERVER資料庫資料恢複

6、解析表結構腳本,将各表的列資訊存入資料庫内便于在後續的資料恢複過程中使用。

掃描腳本檔案:

【資料庫資料恢複】raid5下Sql Server資料庫資料恢複案例

北亞企安資料恢複——SQL SERVER資料庫資料恢複

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

【資料庫資料恢複】raid5下Sql Server資料庫資料恢複案例

北亞企安資料恢複——SQL SERVER資料庫資料恢複

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

8、建立資料庫環境,使用北亞企安自主編寫的軟體解析記錄并導入到環境内。

9、整理恢複結果。資料庫檔案存儲的分區内除了存放資料庫檔案外還存放若幹備份檔案,是以在導出記錄後可能存在重複資料,需要去重。由北亞企安資料恢複工程師編寫程式進行去重。

資料庫去重:

【資料庫資料恢複】raid5下Sql Server資料庫資料恢複案例

北亞企安資料恢複——SQL SERVER資料庫資料恢複

10、處理完所有資料後交由使用者方驗證資料。使用者方工程師經過反複查驗後确認恢複資料完整有效。将恢複出來的資料遷移到使用者方準備好的儲存設備中。

繼續閱讀