故障類型:MS SQL Server數(shù)據(jù)庫損壞
故障現(xiàn)象:用戶磁盤做過CHKDSK檢查,有個(gè)大小為260GB左右的MDF文件,能正常附加到MS SQL Server 2005數(shù)據(jù)庫環(huán)境中。原先數(shù)據(jù)庫正常情況下記錄數(shù)量應(yīng)該在110萬條左右,但是現(xiàn)在附加以后能夠正常查詢的記錄數(shù)量大概60萬條。用戶需要找回丟失掉的50萬條左右的記錄。 (服務(wù)器租用)
診斷故障原因:數(shù)據(jù)庫MDF文件內(nèi)部數(shù)據(jù)異常。
檢測結(jié)果:經(jīng)過對(duì)整個(gè)硬盤鏡像文件進(jìn)行MDF文件數(shù)據(jù)頁面掃描,發(fā)現(xiàn)部分?jǐn)?shù)據(jù)頁面不在260GB的MDF文件里頭,所以這個(gè)260GB的MDF文件所包含的數(shù)據(jù)是不完整的。究其原因是運(yùn)行CHKDSK命令檢查文件系統(tǒng)以后產(chǎn)生的。260GB的文件在NTFS文件系統(tǒng)中分成很多段存放,每個(gè)段都有一個(gè)地址指針,當(dāng)運(yùn)行CHKDSK命令時(shí),系統(tǒng)會(huì)對(duì)這些指針進(jìn)行整理,一旦這個(gè)整理過程中出現(xiàn)異常,數(shù)據(jù)指針就沒法保留原來的地址指針,可能會(huì)修正成別的地址指針,指向別的地方的數(shù)據(jù),導(dǎo)致這個(gè)260GB的MDF文件的地址指針發(fā)生變化,所指向的數(shù)據(jù)就出現(xiàn)部分指向錯(cuò)誤的現(xiàn)象,雖然在系統(tǒng)中看這個(gè)260GB的文件表面上沒有發(fā)生變化,實(shí)際上內(nèi)部數(shù)據(jù)已經(jīng)出現(xiàn)錯(cuò)亂的現(xiàn)象。
數(shù)據(jù)恢復(fù)結(jié)果:經(jīng)過對(duì)這個(gè)260GBMDF數(shù)據(jù)文件結(jié)構(gòu)特點(diǎn),在整個(gè)磁盤鏡像文件中掃描所有屬于他的數(shù)據(jù)頁面,然后收集起來,合并成一個(gè)新的260GB的MDF文件,從這個(gè)新的260GB的MDF文件中,導(dǎo)出103萬條正常的記錄。整個(gè)恢復(fù)過程都運(yùn)用D-Recovery For MS SQL Server軟件來完成。