數據庫數據恢復環境:
5塊磁盤組建RAID5,劃分LUN供windows服務器使用;
windows服務器上部署Sql Server數據庫;操作系統層面劃分了三個邏輯分區。
數據庫故障&初檢:
未知原因導致Sql Server數據庫文件丟失,涉及到數個數據庫和數千張表,不能確定數據存儲位置。數據庫文件丟失后服務器仍然在開機運行,所幸沒有大量寫入數據。
1、將故障服務器內所有硬盤以只讀方式進行全盤鏡像備份,后續數據分析和數據恢復操作都基于鏡像文件進行,避免在恢復數據的過程中對原始數據造成二次破壞。
2、基于鏡像文件分析raid5底層數據,通過分析獲取到的raid相關信息及內部數據塊信息重組RAID。
重組RAID:

北亞企安數據恢復——SQL SERVER數據庫數據恢復
3、完成RAID重組后提取LUN內的三個邏輯分區的鏡像。
4、掃描文件系統內丟失文件,未找到被刪除的數據庫文件。
5、初檢結果為數據庫文件丟失,在文件系統層面無法恢復數據庫數據。
數據庫數據恢復流程:
1、經過初檢后發現數據庫文件被刪除且無法在文件系統層面進行恢復后,北亞企安數據恢復工程師決定通過掃描數據頁,提取頁內記錄的方式來恢復丟失的數據庫數據。
2、使用北亞企安自主開發的數據頁掃描程序掃描分區內數據頁并進行提取。掃描兩個分區鏡像后發現系統盤分區鏡像內的數據頁數量極少且數據頁斷裂情況嚴重,另一分區內掃描到的數據頁數量較多,暫定此分區為數據庫文件的存儲空間。
掃描數據頁:

北亞企安數據恢復——SQL SERVER數據庫數據恢復
3、Sql Server數據庫使用系統表來管理所有用戶表,系統表內記錄了各表的列數、數據類型及約束信息等。在對系統表進行解析的過程中發現提取出來的數據頁內的系統表損壞,無法正常讀取信息。在與用戶方溝通后得知數據庫有備份文件,而且備份完成后也沒有對表結構進行過大的改動,系統表可用。
4、還原備份:

北亞企安數據恢復——SQL SERVER數據庫數據恢復
5、分別提取需要恢復數據的三個庫中各表的表結構信息。
提取表結構信息:

北亞企安數據恢復——SQL SERVER數據庫數據恢復
6、解析表結構腳本,將各表的列信息存入數據庫內便于在后續的數據恢復過程中使用。
掃描腳本文件:

北亞企安數據恢復——SQL SERVER數據庫數據恢復
將表結構信息存入數據庫:

北亞企安數據恢復——SQL SERVER數據庫數據恢復
7、解析系統表,獲取用戶表id信息、關聯表結構與數據頁。
8、新建數據庫環境,使用北亞企安自主編寫的軟件解析記錄并導入到環境內。
9、整理恢復結果。數據庫文件存儲的分區內除了存放數據庫文件外還存放若干備份文件,所以在導出記錄后可能存在重復數據,需要去重。由北亞企安數據恢復工程師編寫程序進行去重。
數據庫去重:

北亞企安數據恢復——SQL SERVER數據庫數據恢復
10、處理完所有數據后交由用戶方驗證數據。用戶方工程師經過反復查驗后確認恢復數據完整有效。將恢復出來的數據遷移到用戶方準備好的存儲設備中。
審核編輯:湯梓紅
-
服務器
+關注
關注
14文章
10251瀏覽量
91480 -
SQL
+關注
關注
1文章
789瀏覽量
46695 -
數據恢復
+關注
關注
10文章
712瀏覽量
18983 -
數據庫
+關注
關注
7文章
4019瀏覽量
68337
發布評論請先 登錄
MySQL數據庫備份恢復方式對比
Oracle數據庫ASM實例無法掛載的數據恢復案例
虛擬化數據恢復—Hyper-V服務癱瘓危機:虛擬機數據文件丟失后的數據恢復案例
不用編程不用聯網,實現倍福(BECKHOFF)PLC對接SQL數據庫,上報和查詢數據的案例
mysql數據恢復—mysql數據庫表被truncate的數據恢復案例
數據庫數據恢復—服務器異常斷電導致Oracle數據庫故障的數據恢復案例
Oracle數據恢復—格式化分區導致Oracle數據庫報錯的數據恢復案例
oracle數據恢復—oracle數據庫誤執行錯誤truncate命令如何恢復數據?
SQL Server數據庫文件丟失的數據恢復案例
評論