1. 程式人生 > >sql server數據庫錯誤數據恢復-數據庫數據恢復

sql server數據庫錯誤數據恢復-數據庫數據恢復

數據庫 SqlServer 數據恢復 數據庫數據恢復 數據恢復公司

1.服務器硬件設備清單
技術分享圖片

2.故障描述

需要進行數據恢復的服務器是一臺r520型號存儲,共有7塊SAS硬盤分別組成raid1和raid5兩組磁盤陣列。主要sql server數據庫存放在C盤中,在使用過程中,客戶發現C盤容量即將占滿,於是將數據庫路徑指向了D盤,在D盤生成了一個.ndf文件。
客戶在繼續使用了大約10天之後,數據庫出現故障,連接失效,無法正常附加查詢。

3.備份數據

考慮到數據的安全性以及可還原性,在做數據恢復之前需要對所有源數據做備份,以防萬一其他原因導致數據無法再次恢復。使用dd命令或winhex工具將所有磁盤都鏡像成文件。

4.故障分析

a)分析故障原因
由於數據庫文件所在磁盤容量不足,導致數據庫無法繼續正常運行,出現邏輯錯誤
(b)分析RAID組結構
客戶服務器上共7塊300G硬盤,其中2塊硬盤做RAID 1,用於安裝操作系統,其余5塊硬盤做RAID 5存放數據。
分析RAID 1和RAID 5的相關結構,重組虛擬出RAID 1和RAID 5,查看其中數據。
(c)分析原始數據庫文件
由於客戶在數據庫發生故障之後,進行過多次數據庫恢復嘗試,並且每一次嘗試都是在源環境下進行的,導致原始數據庫文件被更改覆蓋,並且磁盤空間被多次復寫,無法使用嘗試恢復之後的數據庫文件進行修復。
詢問客戶得知,客戶在數據庫發生故障的時候,備份過一分原始的故障數據庫文件。

5.數據庫修復

從虛擬出的RAID 5空間中將客戶之前備份的數據庫文件拷貝出來,嘗試在數據庫中附加,附加失敗,錯誤提示如下:
圖一:
技術分享圖片

錯誤提示主數據庫文件和次級數據庫文件不匹配,查看.ndf文件底層,發現.ndf文件中幾乎沒有數據,嘗試取消.mdf文件和.ndf文件之間關聯,只用.mdf文件進行附加。
嘗試後發現,只用.mdf文件附加時也發生錯誤,但是錯誤提示改變
圖二:
技術分享圖片
此時錯誤提示日誌文件(.ldf)和數據庫文件(.mdf)不匹配。
之後對數據庫嘗試進行無數據庫附加,附加成功。但是發現數據庫系統表損壞,無法正常使用。
圖三:
技術分享圖片

對數據庫的系統表嘗試修復,但由於系統表損壞過於嚴重,無法修復。
數據庫記錄提取
解析數據庫文件中的數據庫記錄
編寫相應的程序提取數據庫文件中的數據庫記錄
根據客戶以前的數據庫備份獲取數據庫中的表結構
重構表結構並肩提取出的數據庫記錄導入到新的表中


6.數據驗證

由客戶對提取出的數據庫記錄進行驗證,所有數據完全恢復,本次數據恢復成功。

7.數據恢復結論

在數據庫使用過程中,要合理分配數據庫文件所在磁盤空間,及時清理垃圾數據,保證數據庫的正常、安全運行。

sql server數據庫錯誤數據恢復-數據庫數據恢復