故障描述
本案例中涉及一臺裝有SqlServer數(shù)據(jù)庫的某品牌r520型號的服務(wù)器存儲,這臺存儲中又包含有兩組磁盤陣列,raid級別都是raid5。正常情況下用戶的SqlServer數(shù)據(jù)庫存放在D盤中,后因為數(shù)據(jù)量大導(dǎo)致D盤容量不足,管理員便在E盤中生成了一個.ndf的文件并且將數(shù)據(jù)庫路徑指向E盤繼續(xù)進(jìn)行使用。但是大約半個月后數(shù)據(jù)庫突然出現(xiàn)故障報錯,連接失效,SqlServer數(shù)據(jù)庫無法附加查詢。管理員于是進(jìn)行嘗試性數(shù)據(jù)恢復(fù)操作(管理員在原環(huán)境下進(jìn)行了多次嘗試性恢復(fù),導(dǎo)致了原始數(shù)據(jù)庫文件被重復(fù)的更改、覆蓋,磁盤空間復(fù)寫)為后來的數(shù)據(jù)恢復(fù)工作增大了難度。
備份數(shù)據(jù)
按照數(shù)據(jù)恢復(fù)行業(yè)慣例,所有數(shù)據(jù)在進(jìn)行數(shù)據(jù)恢復(fù)操作前必須對數(shù)據(jù)進(jìn)行完整鏡像,使用dd命令或數(shù)據(jù)恢復(fù)工具將所有磁盤都鏡像成文件后對數(shù)據(jù)庫進(jìn)行檢測和分析。
故障分析
數(shù)據(jù)庫報錯的原因經(jīng)工程師初步推斷可能是由于D盤的存儲空間不足導(dǎo)致的邏輯錯誤。
工程師對存儲上的兩組raid5磁盤陣列進(jìn)行分析重組,查看其中的數(shù)據(jù)并將raid總的數(shù)據(jù)庫文件備份出來進(jìn)行嘗試性附加數(shù)據(jù)庫,但數(shù)據(jù)庫報錯。報錯內(nèi)容為“主數(shù)據(jù)庫文件和次級數(shù)據(jù)庫文件不匹配”
數(shù)據(jù)恢復(fù)
數(shù)據(jù)恢復(fù)工程師查看.ndf文件底層,但是在該文件中發(fā)現(xiàn)的數(shù)據(jù)量微乎其微,幾乎沒有任何數(shù)據(jù),工程師將.mdf文件和.ndf文件之間的關(guān)聯(lián)關(guān)系取消,單獨使用.mdf文件進(jìn)行附加數(shù)據(jù)庫依然有報錯,報錯內(nèi)容為“日志文件(.ldf)和數(shù)據(jù)庫文件(.mdf)不匹配”。工程師繼續(xù)進(jìn)行了數(shù)據(jù)庫的五數(shù)據(jù)庫附加操作,數(shù)據(jù)庫可以附加但系統(tǒng)表有損壞,數(shù)據(jù)庫依然無法正常使用。
工程師嘗試修復(fù)數(shù)據(jù)庫系統(tǒng)表但是沒有成功,數(shù)據(jù)表損壞嚴(yán)重,修復(fù)難度極大且效果難以保障,數(shù)據(jù)恢復(fù)工程師決定放棄修復(fù)數(shù)據(jù)表轉(zhuǎn)而嘗試其他方法。
數(shù)據(jù)恢復(fù)工程師將數(shù)據(jù)恢復(fù)的突破口放在數(shù)據(jù)庫記錄上,通過自己編寫的一個小程序?qū)?shù)據(jù)庫記錄提取出來,再根據(jù)客戶以的數(shù)據(jù)庫備份數(shù)據(jù)獲取到該數(shù)據(jù)庫的表結(jié)構(gòu)。重構(gòu)數(shù)據(jù)庫表結(jié)構(gòu),然后將數(shù)據(jù)庫記錄導(dǎo)入新表。數(shù)據(jù)恢復(fù)成功
數(shù)據(jù)庫使用小提示
在數(shù)據(jù)庫使用過程中,要合理分配數(shù)據(jù)庫文件所在磁盤空間,及時清理垃圾數(shù)據(jù),保證數(shù)據(jù)庫的正常、安全運行。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。