SQL Server資料庫恢復教程

SQL Server是一個可擴充套件的、高效能的、為分散式客戶機/伺服器計算所設計的資料庫管理系統,實現了與WindowsNT的有機結合,提供了基於事務的企業級資訊管理系統方案。本次需要進行資料恢復的伺服器是一臺r520型號儲存,共有7塊SAS硬碟分別組成RAID1和RAID5兩組磁碟陣列。

主要SQL Server資料庫存放在C盤中,在使用過程中,客戶發現C盤容量即將佔滿,於是將資料庫路徑指向了D盤,在D盤生成了一個.ndf檔案。

客戶在繼續使用了大約10天之後,資料庫出現故障,連線失效,無法正常附加查詢。在遇到這種情況是應該如何進行正確操作呢?

【備份資料】

考慮到資料的安全性以及可還原性,在做資料恢復之前需要對所有源資料做備份,以防萬一其他原因導致資料無法再次恢復。使用dd命令或winhex工具將所有磁碟都映象成檔案。

【故障分析】

首先分析故障原因:由於資料庫檔案所在磁碟容量不足,導致資料庫無法繼續正常執行,出現邏輯錯誤;

再分析RAID組結構:客戶伺服器上共7塊300G硬碟,其中2塊硬碟做RAID 1,用於安裝作業系統,其餘5塊硬碟做RAID 5存放資料。分析RAID 1和RAID 5的相關結構,重組虛擬出RAID 1和RAID 5,檢視其中資料。

再分析原始資料庫檔案:由於客戶在資料庫發生故障之後,進行過多次資料庫恢復嘗試,並且每一次嘗試都是在源環境下進行的,導致原始資料庫檔案被更改覆蓋,並且磁碟空間被多次複寫,無法使用嘗試恢復之後的資料庫檔案進行修復。詢問客戶得知,客戶在資料庫發生故障的時候,備份過一分原始的故障資料庫檔案。

【資料庫修復】

從虛擬出的RAID 5空間中將客戶之前備份的資料庫檔案拷貝出來,嘗試在資料庫中附加,附加失敗。錯誤提示主資料庫檔案和次級資料庫檔案不匹配,檢視.ndf檔案底層,發現.ndf檔案中幾乎沒有資料,嘗試取消.mdf檔案和.ndf檔案之間關聯,只用.mdf檔案進行附加。

嘗試後發現,只用.mdf檔案附加時也發生錯誤,但是錯誤提示改變。

此時錯誤提示日誌檔案(.ldf)和資料庫檔案(.mdf)不匹配。之後對資料庫嘗試進行無資料庫附加,附加成功。但是發現資料庫系統表損壞,無法正常使用。對資料庫的系統表嘗試修復,但由於系統表損壞過於嚴重,無法修復。

【資料庫記錄提取】

解析資料庫檔案中的資料庫記錄,編寫相應的程式提取資料庫檔案中的資料庫記錄。根據客戶以前的資料庫備份獲取資料庫中的表結構,重構表結構並肩提取出的資料庫記錄匯入到新的表中,進行資料驗證,如資料沒有問題,即本次資料恢復成功。

【北亞資料恢復小貼士】

在資料庫使用過程中,要合理分配資料庫檔案所在的磁碟空間,及時清理垃圾資料,保證資料庫的正常及安全執行,如遇到故障情況時,當不知道如何正確操作時,請及時聯絡相關專業資料恢復工程師進行資料恢復操作。