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

SQL Server master 資料庫災難恢復與僅有 MDF 檔案時的資料庫還原實戰

     編輯:關於SqlServer

當 SQL Server 系統資料庫(特別是 master)損毀,或僅剩下 `.mdf` 主資料檔而遺失 `.ldf` 記錄檔時,如何快速恢復服務?本文整理兩大實戰場景的完整操作流程。

一、master 資料庫重建與恢復流程

適用於 master、model、msdb 等系統資料庫損毀、服務無法啟動的情況。

步驟 1:備份系統資料庫範本檔案

從安裝目錄的 `Templates` 資料夾複製以下檔案至 `DATA` 目錄覆蓋:

  • `master.mdf`、`mastlog.ldf`
  • `model.mdf`、`modellog.ldf`
  • `msdbdata.mdf`、`msdblog.ldf`

路徑範例:
來源:`X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates`
目的:`X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA`

步驟 2:執行安裝程式重建系統資料庫

定位 `setup.exe`(通常在 `C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Release\`),以管理員身分開啟命令提示字元執行:

僅 Windows 驗證模式:

setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=<實例名稱> /SQLSYSADMINACCOUNTS=<管理員帳號>

混合驗證模式(需指定 sa 密碼):

setup /ACTION=REBUILDDATABASE /QUIET /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=administrators /SAPWD=123456

步驟 3:驗證結果並啟動服務

執行完成無提示訊息,請查看 `C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\Summary.txt` 確認是否成功。最後在 SQL Server Configuration Manager 中啟動 SQL Server 服務。


二、僅有 MDF 檔案(無 LDF 記錄檔)的使用者資料庫還原

適用於遺失記錄檔、資料庫進入「可疑」或「緊急」模式的情境。

  1. 建立同名空資料庫(檔案路徑與原資料庫一致)。
  2. 停止 SQL Server 服務,將新建的 `.mdf` 刪除或移走,再將備份的 `.mdf` 放入原位(建議同磁碟操作以節省時間)。
  3. 啟動服務,資料庫將標示為「可疑」或「緊急」狀態。
  4. 在查詢視窗執行:
    ALTER DATABASE [資料庫名稱] SET EMERGENCY
    設定為緊急模式(唯讀、僅 sysadmin 可存取)。
  5. 設定單一使用者模式:
    ALTER DATABASE [資料庫名稱] SET SINGLE_USER
    或 EXEC sp_dboption '[資料庫名稱]', 'single user', 'true'
  6. 執行 DBCC 修復並重建記錄檔:
    DBCC CHECKDB ('[資料庫名稱]', REPAIR_ALLOW_DATA_LOSS)
    若仍有錯誤,再執行 DBCC CHECKDB ('[資料庫名稱]', REPAIR_REBUILD)。注意:REPAIR_ALLOW_DATA_LOSS 可能導致資料遺失,務必先備份 MDF。
  7. 恢復多使用者模式:
    ALTER DATABASE [資料庫名稱] SET MULTI_USER
    整理完成後重新整理物件總管,資料庫即可正常存取。

關鍵提醒:此流程屬高風險操作,建議在測試環境先行演練,正式環境操作前務必確保有完整備份或檔案複本。

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