前言
SQL Server 資料庫核心檔案為 .MDF (主要資料) 與 .LDF (交易記錄)。當資料庫無法附加、掛載失敗、查詢報錯 (如 823 錯誤) 時,傳統修復手段 (緊急模式、單用戶模式 DBCC CHECKDB) 往往無效。本文介紹第三方工具「達思 D-Recovery for MS SQL Server」直接讀取 MDF 檔案、提取資料表/視圖/預存程序/資料記錄,並匯出腳本或直接導入新資料庫的完整流程。
常見資料庫損壞情境
- 斷電導致資料庫進入「可疑」狀態:常見但原生修復不一定成功。

- 附加失敗報 823 錯誤:資料頁面驗證失敗,通常因壞軌、斷電、資料覆寫。

- 資料表查詢報 823 錯誤:資料庫可附加但特定資料表讀取失敗。

D-Recovery 核心修復功能
- 修復斷電導致的可疑資料庫 MDF。
- 修復壞軌/附加失敗的 MDF (含 823 錯誤處理效果佳)。
- 提取資料庫正常但資料表查詢出錯導致的資料遺失。
- 從手工拼湊的 MDF 片段中提取資料。


介面設計與操作
左側樹狀顯示資料表、視圖、預存程序、使用者定義函數/型別;右側顯示資料記錄,支援分頁 (每頁讀取 64 個資料頁,筆數因頁面填充度而異)。
資料庫恢復三步驟
- 開啟 MDF,選擇 SQL 版本 (2000/2005/2008/R2/2012 等)。

- 瀏覽並驗證資料:左側展開資料表,右側檢視記錄。

- 三種匯出方式:
- 匯出腳本:導出所有/選中資料表結構與資料為
.sql 檔,附帶 commit.bat 批次匯入目標資料庫。
- 直接導入新資料庫:點選「把所有表導入資料庫」,輸入目標伺服器 IP、資料庫名、帳號密碼,自動建立結構並寫入資料。

- 資料庫檔案檢測:掃描 MDF 頁面,統計空頁與錯誤頁數量,評估損壞嚴重度。

適用場景與限制
- 最適合:原生修復無效、MDF 關鍵系統表完好、資料記錄實際存在於檔案中。
- 無法修復:資料記錄已被覆寫、關鍵系統表 (如 sys.objects) 損壞導致無法解析結構描述。
- 本工具不直接修復原始 MDF 使其可附加,而是提取資料重建,思路清晰、風險可控。
總結
當 SQL Server 內建修復手段失效,且 MDF 核心結構未毀損時,達思 D-Recovery 以「直接讀取 MDF、提取有效資料、重建至新庫」的思路,成為 DBA 手中挽救核心業務資料的利器。建議平時備妥授權,關鍵時刻可快速介入。