服務器數據恢復環境:
一臺安裝windows server操作系統的服務器。一組由8塊硬盤組建的RAID5,劃分LUN供這臺服務器使用。
在windows服務器內裝有SqlServer數據庫。存儲空間LUN劃分了兩個邏輯分區。
服務器故障&初檢:
由于未知原因,Sql Server數據庫文件丟失,丟失數據涉及到3個庫,表的數量有3000左右。數據庫文件丟失原因還沒有查清楚,也不能確定數據存儲位置。
數據庫文件丟失后服務器仍處于開機狀態,所幸沒有大量數據寫入。
將raid5中所有磁盤編號后取出,經過硬件工程師檢測,沒有發現明顯的硬件故障。以只讀方式將所有磁盤進行扇區級的全盤鏡像,鏡像完成后將所有磁盤按照編號還原到原硬盤槽位。后續的數據分析和數據恢復操作都基于鏡像文件進行,避免對原始磁盤數據造成二次破壞。
1、基于鏡像文件分析所有硬盤的底層數據,獲取該組RAID5相關信息及內部數據塊信息,利用這些獲取到的信息虛擬重組RAID。
重組RAID:
北亞企安數據恢復——數據庫數據恢復
2、完成raid5陣列重組后,提取LUN內兩個分區的鏡像。
3、掃描文件系統內丟失的文件,但是沒有找到丟失的數據庫文件,在文件系統層面無法恢復數據。
服務器數據恢復過程:
1、通過初檢確定無法從文件系統層面恢復數據后,北亞企安數據恢復工程師只能采取通過掃描數據頁并提取頁內記錄的方案恢復數據庫數據。
2、使用北亞企安自主開發的數據頁掃描程序掃描&提取分區內的數據頁。在掃描兩個分區的鏡像后發現一個分區(系統分區)內數據頁數量極少且數據頁斷裂情況嚴重;另一分區內掃描到數據頁個數較多了,應該就是數據庫文件的存儲空間。
掃描數據頁:
北亞企安數據恢復——數據庫數據恢復
3、Sql Server數據庫使用系統表來管理所有用戶表,這些系統表記錄了各表的列數、數據類型及約束信息等。解析系統表過程中發現提取出的數據頁內的系統表損壞,無法正常讀取信息。在與用戶方溝通后才得知有備份文件,且備份后沒有對表結構進行大的改動,系統表可用。
4、還原備份。
北亞企安數據恢復——數據庫數據恢復
5、分別提取三個丟失的數據庫中各表的表結構信息。
提取表結構信息:
北亞企安數據恢復——數據庫數據恢復
6、解析表結構腳本。將各表的列信息存入數據庫內。
掃描腳本文件:
北亞企安數據恢復——數據庫數據恢復
將表結構信息存入數據庫:
北亞企安數據恢復——數據庫數據恢復
7、解析系統表獲取用戶表id信息、關聯表結構與數據頁。
8、新建數據庫,使用北亞企安自主開發的程序解析記錄并導入到新建的數據庫環境內。
9、整理恢復結果。在數據庫文件所在的分區內除了數據庫文件,還存放有備份文件,所以在導出的記錄中應該存在重復的數據,必須將數據去重。北亞企安數據恢復工程師編寫SQL存儲過程對數據進行去重。
數據庫去重:
北亞企安數據恢復——數據庫數據恢復
10、處理完數據后交由用戶方驗證數據。用戶方對數據進行檢查后確認恢復出來的數據有效。在數據恢復工程師的協助下,用戶方將恢復出來的數據遷移到準備好的存儲設備中。本次數據恢復工作完成。
審核編輯 黃宇
-
服務器
+關注
關注
12文章
9160瀏覽量
85416 -
數據恢復
+關注
關注
10文章
573瀏覽量
17450 -
數據庫
+關注
關注
7文章
3799瀏覽量
64388 -
SQLserver
+關注
關注
0文章
18瀏覽量
7002
發布評論請先 登錄
相關推薦
評論