sql server資料庫附加錯誤的解決過程

北亞資料恢復發表於2018-06-01

故障描述

本案例中涉及一臺裝有SqlServer資料庫的某品牌r520型號的伺服器儲存,這臺儲存中又包含有兩組磁碟陣列,raid級別都是raid5。正常情況下使用者的SqlServer資料庫存放在D盤中,後因為資料量大導致D盤容量不足,管理員便在E盤中生成了一個.ndf的檔案並且將資料庫路徑指向E盤繼續進行使用。但是大約半個月後資料庫突然出現故障報錯,連線失效,SqlServer資料庫無法附加查詢。管理員於是進行嘗試性資料恢復操作(管理員在原環境下進行了多次嘗試性恢復,導致了原始資料庫檔案被重複的更改、覆蓋,磁碟空間複寫)為後來的資料恢復工作增大了難度。

備份資料

按照資料恢復行業慣例,所有資料在進行資料恢復操作前必須對資料進行完整映象,使用dd命令或資料恢復工具將所有磁碟都映象成檔案後對資料庫進行檢測和分析。

故障分析

資料庫報錯的原因經工程師初步推斷可能是由於D盤的儲存空間不足導致的邏輯錯誤。
工程師對儲存上的兩組raid5磁碟陣列進行分析重組,檢視其中的資料並將raid總的資料庫檔案備份出來進行嘗試性附加資料庫,但資料庫報錯。報錯內容為“主資料庫檔案和次級資料庫檔案不匹配”

資料恢復

資料恢復工程師檢視.ndf檔案底層,但是在該檔案中發現的資料量微乎其微,幾乎沒有任何資料,工程師將.mdf檔案和.ndf檔案之間的關聯關係取消,單獨使用.mdf檔案進行附加資料庫依然有報錯,報錯內容為“日誌檔案(.ldf)和資料庫檔案(.mdf)不匹配”。工程師繼續進行了資料庫的五資料庫附加操作,資料庫可以附加但系統表有損壞,資料庫依然無法正常使用。
工程師嘗試修復資料庫系統表但是沒有成功,資料表損壞嚴重,修復難度極大且效果難以保障,資料恢復工程師決定放棄修復資料錶轉而嘗試其他方法。
資料恢復工程師將資料恢復的突破口放在資料庫記錄上,透過自己編寫的一個小程式將資料庫記錄提取出來,再根據客戶以的資料庫備份資料獲取到該資料庫的表結構。重構資料庫表結構,然後將資料庫記錄匯入新表。資料恢復成功

資料庫使用小提示

在資料庫使用過程中,要合理分配資料庫檔案所在磁碟空間,及時清理垃圾資料,保證資料庫的正常、安全執行。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31380569/viewspace-2155469/,如需轉載,請註明出處,否則將追究法律責任。

相關文章