【數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)】raid5下Sql Server數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)案例

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境:
5塊磁盤組建RAID5,劃分LUN供windows服務(wù)器使用;
windows服務(wù)器上部署Sql Server數(shù)據(jù)庫(kù);操作系統(tǒng)層面劃分了三個(gè)邏輯分區(qū)。
數(shù)據(jù)庫(kù)故障&初檢:
未知原因?qū)е耂ql Server數(shù)據(jù)庫(kù)文件丟失,涉及到數(shù)個(gè)數(shù)據(jù)庫(kù)和數(shù)千張表,不能確定數(shù)據(jù)存儲(chǔ)位置。數(shù)據(jù)庫(kù)文件丟失后服務(wù)器仍然在開(kāi)機(jī)運(yùn)行,所幸沒(méi)有大量寫(xiě)入數(shù)據(jù)。
1、將故障服務(wù)器內(nèi)所有硬盤以只讀方式進(jìn)行全盤鏡像備份,后續(xù)數(shù)據(jù)分析和數(shù)據(jù)恢復(fù)操作都基于鏡像文件進(jìn)行,避免在恢復(fù)數(shù)據(jù)的過(guò)程中對(duì)原始數(shù)據(jù)造成二次破壞。
2、基于鏡像文件分析raid5底層數(shù)據(jù),通過(guò)分析獲取到的raid相關(guān)信息及內(nèi)部數(shù)據(jù)塊信息重組RAID。
重組RAID:

3、完成RAID重組后提取LUN內(nèi)的三個(gè)邏輯分區(qū)的鏡像。
4、掃描文件系統(tǒng)內(nèi)丟失文件,未找到被刪除的數(shù)據(jù)庫(kù)文件。
5、初檢結(jié)果為數(shù)據(jù)庫(kù)文件丟失,在文件系統(tǒng)層面無(wú)法恢復(fù)數(shù)據(jù)庫(kù)數(shù)據(jù)。
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)流程:
1、經(jīng)過(guò)初檢后發(fā)現(xiàn)數(shù)據(jù)庫(kù)文件被刪除且無(wú)法在文件系統(tǒng)層面進(jìn)行恢復(fù)后,北亞企安數(shù)據(jù)恢復(fù)工程師決定通過(guò)掃描數(shù)據(jù)頁(yè),提取頁(yè)內(nèi)記錄的方式來(lái)恢復(fù)丟失的數(shù)據(jù)庫(kù)數(shù)據(jù)。
2、使用北亞企安自主開(kāi)發(fā)的數(shù)據(jù)頁(yè)掃描程序掃描分區(qū)內(nèi)數(shù)據(jù)頁(yè)并進(jìn)行提取。掃描兩個(gè)分區(qū)鏡像后發(fā)現(xiàn)系統(tǒng)盤分區(qū)鏡像內(nèi)的數(shù)據(jù)頁(yè)數(shù)量極少且數(shù)據(jù)頁(yè)斷裂情況嚴(yán)重,另一分區(qū)內(nèi)掃描到的數(shù)據(jù)頁(yè)數(shù)量較多,暫定此分區(qū)為數(shù)據(jù)庫(kù)文件的存儲(chǔ)空間。
掃描數(shù)據(jù)頁(yè):

3、Sql Server數(shù)據(jù)庫(kù)使用系統(tǒng)表來(lái)管理所有用戶表,系統(tǒng)表內(nèi)記錄了各表的列數(shù)、數(shù)據(jù)類型及約束信息等。在對(duì)系統(tǒng)表進(jìn)行解析的過(guò)程中發(fā)現(xiàn)提取出來(lái)的數(shù)據(jù)頁(yè)內(nèi)的系統(tǒng)表?yè)p壞,無(wú)法正常讀取信息。在與用戶方溝通后得知數(shù)據(jù)庫(kù)有備份文件,而且備份完成后也沒(méi)有對(duì)表結(jié)構(gòu)進(jìn)行過(guò)大的改動(dòng),系統(tǒng)表可用。
4、還原備份:

5、分別提取需要恢復(fù)數(shù)據(jù)的三個(gè)庫(kù)中各表的表結(jié)構(gòu)信息。
提取表結(jié)構(gòu)信息:

6、解析表結(jié)構(gòu)腳本,將各表的列信息存入數(shù)據(jù)庫(kù)內(nèi)便于在后續(xù)的數(shù)據(jù)恢復(fù)過(guò)程中使用。
掃描腳本文件:

將表結(jié)構(gòu)信息存入數(shù)據(jù)庫(kù):

7、解析系統(tǒng)表,獲取用戶表id信息、關(guān)聯(lián)表結(jié)構(gòu)與數(shù)據(jù)頁(yè)。
8、新建數(shù)據(jù)庫(kù)環(huán)境,使用北亞企安自主編寫(xiě)的軟件解析記錄并導(dǎo)入到環(huán)境內(nèi)。
9、整理恢復(fù)結(jié)果。數(shù)據(jù)庫(kù)文件存儲(chǔ)的分區(qū)內(nèi)除了存放數(shù)據(jù)庫(kù)文件外還存放若干備份文件,所以在導(dǎo)出記錄后可能存在重復(fù)數(shù)據(jù),需要去重。由北亞企安數(shù)據(jù)恢復(fù)工程師編寫(xiě)程序進(jìn)行去重。
數(shù)據(jù)庫(kù)去重:

10、處理完所有數(shù)據(jù)后交由用戶方驗(yàn)證數(shù)據(jù)。用戶方工程師經(jīng)過(guò)反復(fù)查驗(yàn)后確認(rèn)恢復(fù)數(shù)據(jù)完整有效。將恢復(fù)出來(lái)的數(shù)據(jù)遷移到用戶方準(zhǔn)備好的存儲(chǔ)設(shè)備中。