:::

修復SQL Server 2000的MDF檔案:Recovery for SQL Server

image

Recovery for SQL Server可以拯救你SQL Server中損毀的MDF檔案,即使是demo版本也能救回一定數量的資料喔!


適用情境

image

我在修理學長畢業論文的系統時,發現他使用的SQL Server中某個資料庫壞掉了。在SQL Server Enterprise Manager裡面顯示的狀況如上圖,PIMS_DB被標示出(有疑問),而裡面也無法看到該資料庫的任何資料。

在預設安裝中,該資料庫的位置會在「C:\Program Files\Microsoft SQL Server\MSSQL$伺服器名稱\Data\資料庫名稱_Data.MDF」裡面,而上述的狀態中就是表示這個MDF檔案壞掉的意思。


Recovery for SQL Server

修復MDF的工具很多,但是不僅幾乎找不到免費的,有些試用版本(demo)是連匯出都不給你匯出。其中,Recovery for SQL Server的試用版本則是在一定限制中進行復原與匯出的好用工具。

image

下載demo並安裝的過程很單純,他也不會要你輸入序號。根據官方網站的FAQ中的說明,demo版本的限制在於每個資料表只能還原一定數量的資料。超過這個數量之後,其他的資料就會被留空(<null>),而文字型態的欄位則會被加入「demo」。經過測試修復,我恢復到507筆都還正常,而在508筆之後資料變成了「DEMO」,可見這個限制大概是在500筆左右

image

安裝完demo之後,他有4.1版本與5.0 Beta。以下我介紹4.1版本的修復操作步驟:

1. 開啟Recovery for SQL Server 4.1主介面

image

需要注意的只有兩個地方:一個是右上角的「Recover」功能;另一個是中間很大的Message系統資訊。

image

請點下右上角的Recovery進行下一步。

2. 選擇要修復的MDF檔案

image

一般是到「C:\Program Files\Microsoft SQL Server\MSSQL$伺服器名稱\Data\資料庫名稱_Data.MDF」找到MDF檔案。接著要注意到下一步的「Next >」按鈕是在左邊,右邊則是「Cancel」取消,不要按錯了。

3. 授權提示

image

以上訊息告訴您資料庫最大不能超過24GB,超過的話請用標準版的Recovery for SQL Server。其他是採購授權的資訊。沒有要買的話可以按「Next >」前往下一步。

4. 復原設定

image

我使用「Typical」(典型)的類型來復原的。

5. 選擇目標資料夾

image

選擇復原的資料要保存在哪個資料夾,預設是擺在「我的文件」的位置。確定的話,按下「Start」就開始復原程序了。

6. 復原中

image

主介面中間的Message會顯示現在處理的狀況。處理完畢之後會跳出「Recovery for SQL Server Database Creation Wizard」,以下繼續說明。

7. Recovery for SQL Server Database Creation Wizard

image

這個精靈會協助您將剛剛修復的資料用來建立起新的資料庫。跟建立資料庫時的手續差不多,請先選伺服器,並輸入登入資訊。同樣的,下一步「Next >」的按鈕位置在最左邊,請不要按錯了。

8. 設定目標資料庫

image

您可以選擇目前的資料庫來儲存,或著是建立新的資料庫。因為我原本的資料庫損毀了,所以此時我選擇建立新的資料庫。建立新的資料庫時,要指定資料庫名稱,以及各個檔案的位置。

9. 選擇匯入模式

image

匯入模式有三種:

  1. 從資料庫與記錄檔案(log)中匯入資料
  2. 只從資料庫匯入資料
  3. 只從記錄檔匯入資料

我選擇第一項進行。

10. 確認要匯入的SQL程式

image

這些資料都是剛剛從損毀資料庫中恢復的資料,請按下一步「Next >」繼續。

11. 匯入過程到完成

image

稍待一段時間,讓他匯入完畢之後,按下「Finish」按鈕即可完成整個作業。

匯入完成之後,您可以開啟SQL Server Enterprise Manager來查看建立起的資料庫的狀況。理論上剛剛建的資料庫都已經可以運作了,您只要把系統的資料庫設定指定到新建立的資料庫即可正常運作囉。


雖然用Recovery for SQL Server的demo版本可以恢復整個資料庫的結構與部份資料,但還是無法還原整個完整的資料庫,這讓我有點困擾啊。

不知道有沒有人可以推薦我免費的MDF復原工具呢?