服務(wù)器數(shù)據(jù)恢復(fù)環(huán)境:
一臺(tái)安裝windows server操作系統(tǒng)的服務(wù)器。一組由8塊硬盤(pán)組建的RAID5,劃分LUN供這臺(tái)服務(wù)器使用。
在windows服務(wù)器內(nèi)裝有SqlServer數(shù)據(jù)庫(kù)。存儲(chǔ)空間LUN劃分了兩個(gè)邏輯分區(qū)。
服務(wù)器故障&初檢:
由于未知原因,Sql Server數(shù)據(jù)庫(kù)文件丟失,丟失數(shù)據(jù)涉及到3個(gè)庫(kù),表的數(shù)量有3000左右。數(shù)據(jù)庫(kù)文件丟失原因還沒(méi)有查清楚,也不能確定數(shù)據(jù)存儲(chǔ)位置。
數(shù)據(jù)庫(kù)文件丟失后服務(wù)器仍處于開(kāi)機(jī)狀態(tài),所幸沒(méi)有大量數(shù)據(jù)寫(xiě)入。
將raid5中所有磁盤(pán)編號(hào)后取出,經(jīng)過(guò)硬件工程師檢測(cè),沒(méi)有發(fā)現(xiàn)明顯的硬件故障。以只讀方式將所有磁盤(pán)進(jìn)行扇區(qū)級(jí)的全盤(pán)鏡像,鏡像完成后將所有磁盤(pán)按照編號(hào)還原到原硬盤(pán)槽位。后續(xù)的數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作都基于鏡像文件進(jìn)行,避免對(duì)原始磁盤(pán)數(shù)據(jù)造成二次破壞。
1、基于鏡像文件分析所有硬盤(pán)的底層數(shù)據(jù),獲取該組RAID5相關(guān)信息及內(nèi)部數(shù)據(jù)塊信息,利用這些獲取到的信息虛擬重組RAID。
重組RAID:
北亞企安數(shù)據(jù)恢復(fù)——數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)
2、完成raid5陣列重組后,提取LUN內(nèi)兩個(gè)分區(qū)的鏡像。
3、掃描文件系統(tǒng)內(nèi)丟失的文件,但是沒(méi)有找到丟失的數(shù)據(jù)庫(kù)文件,在文件系統(tǒng)層面無(wú)法恢復(fù)數(shù)據(jù)。
服務(wù)器數(shù)據(jù)恢復(fù)過(guò)程:
1、通過(guò)初檢確定無(wú)法從文件系統(tǒng)層面恢復(fù)數(shù)據(jù)后,北亞企安數(shù)據(jù)恢復(fù)工程師只能采取通過(guò)掃描數(shù)據(jù)頁(yè)并提取頁(yè)內(nèi)記錄的方案恢復(fù)數(shù)據(jù)庫(kù)數(shù)據(jù)。
2、使用北亞企安自主開(kāi)發(fā)的數(shù)據(jù)頁(yè)掃描程序掃描&提取分區(qū)內(nèi)的數(shù)據(jù)頁(yè)。在掃描兩個(gè)分區(qū)的鏡像后發(fā)現(xiàn)一個(gè)分區(qū)(系統(tǒng)分區(qū))內(nèi)數(shù)據(jù)頁(yè)數(shù)量極少且數(shù)據(jù)頁(yè)斷裂情況嚴(yán)重;另一分區(qū)內(nèi)掃描到數(shù)據(jù)頁(yè)個(gè)數(shù)較多了,應(yīng)該就是數(shù)據(jù)庫(kù)文件的存儲(chǔ)空間。
掃描數(shù)據(jù)頁(yè):
北亞企安數(shù)據(jù)恢復(fù)——數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)
3、Sql Server數(shù)據(jù)庫(kù)使用系統(tǒng)表來(lái)管理所有用戶表,這些系統(tǒng)表記錄了各表的列數(shù)、數(shù)據(jù)類(lèi)型及約束信息等。解析系統(tǒng)表過(guò)程中發(fā)現(xiàn)提取出的數(shù)據(jù)頁(yè)內(nèi)的系統(tǒng)表?yè)p壞,無(wú)法正常讀取信息。在與用戶方溝通后才得知有備份文件,且備份后沒(méi)有對(duì)表結(jié)構(gòu)進(jìn)行大的改動(dòng),系統(tǒng)表可用。
4、還原備份。
北亞企安數(shù)據(jù)恢復(fù)——數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)
5、分別提取三個(gè)丟失的數(shù)據(jù)庫(kù)中各表的表結(jié)構(gòu)信息。
提取表結(jié)構(gòu)信息:
北亞企安數(shù)據(jù)恢復(fù)——數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)
6、解析表結(jié)構(gòu)腳本。將各表的列信息存入數(shù)據(jù)庫(kù)內(nèi)。
掃描腳本文件:
北亞企安數(shù)據(jù)恢復(fù)——數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)
將表結(jié)構(gòu)信息存入數(shù)據(jù)庫(kù):
北亞企安數(shù)據(jù)恢復(fù)——數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)
7、解析系統(tǒng)表獲取用戶表id信息、關(guān)聯(lián)表結(jié)構(gòu)與數(shù)據(jù)頁(yè)。
8、新建數(shù)據(jù)庫(kù),使用北亞企安自主開(kāi)發(fā)的程序解析記錄并導(dǎo)入到新建的數(shù)據(jù)庫(kù)環(huán)境內(nèi)。
9、整理恢復(fù)結(jié)果。在數(shù)據(jù)庫(kù)文件所在的分區(qū)內(nèi)除了數(shù)據(jù)庫(kù)文件,還存放有備份文件,所以在導(dǎo)出的記錄中應(yīng)該存在重復(fù)的數(shù)據(jù),必須將數(shù)據(jù)去重。北亞企安數(shù)據(jù)恢復(fù)工程師編寫(xiě)SQL存儲(chǔ)過(guò)程對(duì)數(shù)據(jù)進(jìn)行去重。
數(shù)據(jù)庫(kù)去重:
北亞企安數(shù)據(jù)恢復(fù)——數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)
10、處理完數(shù)據(jù)后交由用戶方驗(yàn)證數(shù)據(jù)。用戶方對(duì)數(shù)據(jù)進(jìn)行檢查后確認(rèn)恢復(fù)出來(lái)的數(shù)據(jù)有效。在數(shù)據(jù)恢復(fù)工程師的協(xié)助下,用戶方將恢復(fù)出來(lái)的數(shù)據(jù)遷移到準(zhǔn)備好的存儲(chǔ)設(shè)備中。本次數(shù)據(jù)恢復(fù)工作完成。
審核編輯 黃宇
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9321瀏覽量
86101 -
數(shù)據(jù)恢復(fù)
+關(guān)注
關(guān)注
10文章
586瀏覽量
17654 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3851瀏覽量
64710 -
SQLserver
+關(guān)注
關(guān)注
0文章
19瀏覽量
7013
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
Devart: dbForge Compare Bundle for SQL Server—比較SQL數(shù)據(jù)庫(kù)最簡(jiǎn)單、最準(zhǔn)確的方法
SqlServer數(shù)據(jù)恢復(fù)—SqlServer數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例
![SqlServer<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—SqlServer<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例](https://file1.elecfans.com/web2/M00/AD/00/wKgZomU_TAiAULRtAAEKTBEQ2Pg592.png)
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫(kù)表記錄丟失的數(shù)據(jù)恢復(fù)流程
![<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—Mysql<b class='flag-5'>數(shù)據(jù)庫(kù)</b>表記錄<b class='flag-5'>丟失</b>的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>流程](https://file.elecfans.com/web2/M00/7B/26/pYYBAGNzCiiANj77AAH4iOB3xKM259.png)
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫(kù)ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—通過(guò)拼接數(shù)據(jù)庫(kù)碎片恢復(fù)SQLserver數(shù)據(jù)庫(kù)
![<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—通過(guò)拼接<b class='flag-5'>數(shù)據(jù)庫(kù)</b>碎片<b class='flag-5'>恢復(fù)</b>SQLserver<b class='flag-5'>數(shù)據(jù)庫(kù)</b>](https://file1.elecfans.com/web1/M00/F4/07/wKgaoWcjE32AbQdWAAJD_hojvJc119.png)
oracle數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫(kù)打開(kāi)報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例
![oracle<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—Oracle<b class='flag-5'>數(shù)據(jù)庫(kù)</b>打開(kāi)報(bào)錯(cuò)的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例](https://file1.elecfans.com/web2/M00/8F/05/wKgZomTLUp-AEdgqAAJwnPCXKpg284.png)
Oracle數(shù)據(jù)恢復(fù)—異常斷電后Oracle數(shù)據(jù)庫(kù)啟庫(kù)報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例
![Oracle<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—異常斷電后Oracle<b class='flag-5'>數(shù)據(jù)庫(kù)</b>啟<b class='flag-5'>庫(kù)</b>報(bào)錯(cuò)的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例](https://file1.elecfans.com/web2/M00/08/B8/wKgZomb6Ns-AbiICAAFlXAFpKKU086.png)
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Oracle數(shù)據(jù)庫(kù)文件system01.dbf損壞的數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—Oracle<b class='flag-5'>數(shù)據(jù)庫(kù)文件</b>system01.dbf損壞的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例](https://file1.elecfans.com//web2/M00/06/BC/wKgZombqY1-AbIlmAAA0fq5EyZY308.jpg)
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—<b class='flag-5'>SQL</b> <b class='flag-5'>Server</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b>出現(xiàn)823錯(cuò)誤的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例](https://file1.elecfans.com/web2/M00/07/F4/wKgaombs78mANJ1GAAPeSoXHVPE244.png)
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SqlServer數(shù)據(jù)庫(kù)底層File Record被截?cái)酁?的數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—SqlServer<b class='flag-5'>數(shù)據(jù)庫(kù)</b>底層File Record被截?cái)酁?的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例](https://file.elecfans.com/web2/M00/AD/92/pYYBAGSRTBOAJcT3AATg2PM85Ok126.png)
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)所在分區(qū)空間不足報(bào)錯(cuò)的數(shù)據(jù)恢復(fù)案例
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—數(shù)據(jù)庫(kù)所在分區(qū)空間不足導(dǎo)致sqlserver故障的數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—<b class='flag-5'>數(shù)據(jù)庫(kù)</b>所在分區(qū)空間不足導(dǎo)致sqlserver故障的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例](https://file.elecfans.com/web2/M00/A5/1F/pYYBAGRd7l6AFn25AAQyenpNuoc061.png)
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—raid5陣列上層Sql Server數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例
![<b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—raid5陣列上層<b class='flag-5'>Sql</b> <b class='flag-5'>Server</b><b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例](https://file.elecfans.com/web2/M00/A2/AD/pYYBAGRLbSSAHhFWAAI9vWNRQec919.png)
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—ndf文件大小變?yōu)?KB的數(shù)據(jù)恢復(fù)案例
MongoDB數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫(kù)文件損壞的數(shù)據(jù)恢復(fù)案例
![MongoDB<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>—MongoDB<b class='flag-5'>數(shù)據(jù)庫(kù)文件</b>損壞的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>恢復(fù)</b>案例](https://file.elecfans.com/web2/M00/9F/F3/poYBAGQ-Pg6AWHFxAAJ9VHkTNrk678.png)
評(píng)論