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

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server附加數(shù)據(jù)庫提示“錯誤 823”的數(shù)據(jù)恢復(fù)案例

虛擬化數(shù)據(jù)恢復(fù)—誤還原快照的數(shù)據(jù)恢復(fù)案例
Devart: dbForge Compare Bundle for SQL Server—比較SQL數(shù)據(jù)庫最簡單、最準(zhǔn)確的方法
SqlServer數(shù)據(jù)恢復(fù)—SqlServer數(shù)據(jù)庫數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復(fù)流程

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例
數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—通過拼接數(shù)據(jù)庫碎片恢復(fù)SQLserver數(shù)據(jù)庫

oracle數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫打開報錯的數(shù)據(jù)恢復(fù)案例

Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫啟庫報錯的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫文件system01.dbf損壞的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫出現(xiàn)823錯誤的數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫數(shù)據(jù)恢復(fù)—SqlServer數(shù)據(jù)庫底層File Record被截斷為0的數(shù)據(jù)恢復(fù)案例

評論