首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

利用 MDF 檔案單獨還原 SQL Server 2000 資料庫實戰指南

     編輯:關於SqlServer

情境背景

重裝作業系統導致 C 槽格式化,遺失 SQL Server 2000 資料庫備份,但資料檔(MDF)因空間不足先前存放於其他磁碟而倖免。本文記錄僅憑 MDF 檔案還原資料庫的完整實作流程。

核心解決方案:系統預存程序

經查詢資料發現 sp_detach_db 與 sp_attach_single_file_db 兩個系統預存程序正是解決此問題的關鍵。實測步驟如下:

操作步驟

  1. 建立同名資料庫:在 Enterprise Manager 或透過 T-SQL 建立名為 robot 的空資料庫。
  2. 刪除記錄檔:刪除新建資料庫自動產生的 robot_Data.LDF,否則後續附加會失敗。
  3. 設定離線:將 robot 資料庫設為離線狀態。
  4. 執行系統預存程序:在查詢分析器以系統管理員(sa)登入,執行:
    EXEC sp_detach_db @dbname = 'robot'
    EXEC sp_attach_single_file_db @dbname = 'robot', @physname = 'E:\WebDemo\robot_Data.MDF'
    

    注意:必須使用系統管理員權限執行,否則會權限不足報錯。

  5. 設定上線:將資料庫設回線上狀態。
  6. 驗證結果:重新整理資料庫清單,資料表與資料完整呈現,還原成功。

關鍵點總結

  • sp_attach_single_file_db 允許僅透過單一 MDF 檔案附加資料庫,SQL Server 會自動重建記錄檔(LDF)。
  • 先卸離再附加是必要流程,跳過卸離會導致檔案鎖定衝突。
  • 此方法適用於無完整備份、僅存有 MDF 檔案的災難恢復場景。

避坑指南

若附加後資料庫標記為「可疑」,請檢查 MDF 檔案是否損毀,或嘗試以 DBCC CHECKDB 修復。此外,SQL Server 2005 及以上版本建議改用 CREATE DATABASE ... FOR ATTACH_REBUILD_LOG 語法,功能更完善。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved