數據庫故障&分析:
SQL server數據庫數據無法讀取。
經過初檢,發現SQL server數據庫文件無法被讀取的原因是因為底層File Record被截斷為0,無法找到文件開頭,數據表結構損壞。鏡像文件的前面幾十M空間和中間一部分空間被覆蓋掉,系統表損壞,無法讀取。考慮用自動備份文件來提取表結構。
日志中的操作記錄:
北亞企安數據恢復——SQL Server數據恢復
由于系統表損壞,有大量數據表的結構無法確定,只能依靠數據恢復工程師的技術和經驗嘗試進行恢復。
經過初檢的結果,北亞企安數據恢復工程師團隊最終敲定數據恢復方案:
1、備份數據。
2、基于備份文件分析舊SQL server數據庫底層數據。
3、從舊SQL server數據庫中尋找數據表的結構。
4、從日志中提取一部分數據表的結構。
5、從日志和殘留數據中提取完好的數據。
6、根據日志恢復對應的數據,檢查數據是否正確。
7、數據核對沒有問題后恢復出所有數據。
數據庫數據恢復過程:
1、將涉及到的所有硬盤交由硬件工程師進行物理故障檢測,經過檢測沒有發現有硬盤存在物理故障。將每塊硬盤以只讀方式做全盤鏡像,后續的數據分析和數據恢復工作都基于鏡像文件進行,避免對原始磁盤數據造成二次破壞。
對硬盤做鏡像:
北亞企安數據恢復——SQL Server數據恢復
2、基于鏡像文件分析硬盤底層數據,發現底層殘留許多以前SQL server數據庫的日志和備份文件。經過查看分析,發現日志中有很多包括插入語句的操作記錄。在備份文件中發現建表語句和一部分舊數據。
3、北亞企安數據恢復工程師編寫提取SQL server數據庫相關數據的小程序,掃描硬盤中所有存在的SQL server數據庫殘留數據并進行提取。
4、分析掃描到的所有日志文件,發現日志文件中的數據記錄都有固定的開頭和結尾,每條數據在固定的位置都有object ID號。在接下來的掃描中,繼續尋找有同樣object Id的數據記錄,發現這些數據記錄結構相同,由此可以判斷這是完好的數據,可以提取。
5、分析掃描到的備份文件,發現可以通過提取其中的建表語句來得到一部分的表結構。對于剩余的表結構,因為截斷為0的部分剛好在系統表,所以沒有辦法提取,只能根據從日志中提取出來的數據猜測表結構和數據類型。
6、根據前面分析的結果,北亞企安數據恢復工程師編寫程序從備份文件中提取建表語句,根據建表語句分析表結構與各種數據的類型。在殘留的系統表中尋找22H、07H、05H表,根據這些建立表與OBJECT_ID的對應關系。
7、北亞企安數據恢復工程師編寫程序提取日志中的記錄,根據object ID來對應數據和表,并將數據插入到新表中。
8、完成上述的所有操作后對數據進行驗證,經過驗證確認恢復出來的新表與用工具觀察到的數據基本一致。本次數據恢復工作完成。
審核編輯:湯梓紅
-
Server
+關注
關注
0文章
90瀏覽量
24005 -
數據恢復
+關注
關注
10文章
552瀏覽量
17397 -
數據庫
+關注
關注
7文章
3767瀏覽量
64280
發布評論請先 登錄
相關推薦
評論