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

SQL Server 無法啟動?master 資料庫損壞修復與重建完整指南

     編輯:關於SqlServer

錯誤現象

SQL Server 服務無法啟動,Windows 事件檢視器中記錄以下錯誤:

  • Event ID 17052:無法復原 master 資料庫。正在結束。
  • Event ID 18052:錯誤 9003,嚴重性 20,狀態 1。

這通常表示 master.mdf 或 mastlog.ldf 損壞,或磁碟故障導致系統資料庫不一致。

解決方案一:從備份或同版本實例複製系統資料庫檔案重建

適用情境: 有同版本、同修補層級的健全 SQL Server 實例可用,或有完整的系統資料庫檔案備份。

操作步驟

  1. 備份原損壞資料目錄
    將 C:\Program Files\Microsoft SQL Server\MSSQL\Data (或對應實例路徑) 重新命名為 Data_bak。
  2. 取得乾淨的系統資料庫檔案
    從同版本健全實例複製以下四個檔案至任意暫存目錄 (勿放回 Data 目錄):
    master.mdf, mastlog.ldf, model.mdf, modellog.ldf
  3. 執行 rebuildm.exe 重建 master
    路徑通常在:C:\Program Files\Microsoft SQL Server\80\Tools\Binn\rebuildm.exe (SQL 2000)
    或 C:\Program Files\Microsoft SQL Server\90\Tools\Binn\rebuildm.exe (SQL 2005)
    SQL 2008+ 請使用安裝媒體的 Setup.exe /ACTION=REBUILDDATABASE。
  4. 指定來源檔案位置
    在精靈中指向第 2 步驟複製的檔案資料夾,啟動重建。
  5. 啟動服務並掛回使用者資料庫
    重建成功後啟動 SQL Server 服務,再將原 Data_bak 中的使用者資料庫 (.mdf/.ldf) 掛接回來,刪除標示為「可疑」的資料庫。

解決方案二:重新安裝 SQL Server (終極手段)

適用情境: 無可用備份、系統資料庫損壞嚴重、或時間緊迫需快速恢復服務。

乾淨重裝步驟

  1. 控制台 → 程式集合 → 解除安裝 SQL Server 所有元件。
  2. 手動刪除殘留目錄:
    C:\Program Files\Microsoft SQL Server\
    C:\Program Files (x86)\Microsoft SQL Server\
    (若安裝在其他磁碟,同理刪除對應目錄)
  3. 刪除註冊表殘留鍵值 (謹慎):
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer
  4. 重新開機,全新安裝 SQL Server 並套用最新 Service Pack / CU。
  5. 還原使用者資料庫備份。

預防建議

  • **定期備份系統資料庫** (master, model, msdb) —— 使用維護計畫或 T-SQL 腳本。
  • 啟用 資料庫頁面驗證 (CHECKSUM) 並定期執行 DBCC CHECKDB。
  • 磁碟層面採用 RAID 1/5/10 + 定期 SMART 監控。
  • 重要系統資料庫檔案放置於專屬、高可靠度儲存裝置。

快速診斷腳本

-- 檢查 master 資料庫檔案路徑與狀態
SELECT name, physical_name, state_desc
FROM sys.master_files
WHERE database_id = 1; -- master

-- 檢查錯誤記錄
EXEC sp_readerrorlog 0, 1, 'master', 'error';

遇到無法啟動時,保持冷靜,優先嘗試方案一 (保留使用者資料),若無備份或重建失敗,果斷執行方案二重裝最省時。

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