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

SQL Server 2005 系統資料庫 master 與 msdb 備份還原完整實戰

     編輯:SQL Server 2005

為何要備份系統資料庫

master 儲存登入帳號、連結伺服器、端點等實例級中繼資料;msdb 儲存 Agent 作業、排程、警示、SSIS 套件、備份歷史等。遺失將導致實例無法啟動或自動化任務癱瘓。TempDB 重啟自動重建,無需備份。

一、master 資料庫重建與還原

1. 重建 master(SQL Server 2005 廢除 Rebuildm.exe,改用 setup.exe)

start /wait setup.exe /qn INSTANCENAME=MSSQLSERVER REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=YourStrongPassword
  • INSTANCENAME:預設實例用 MSSQLSERVER,具名實例填實例名。
  • SAPWD:指定 sa 強密碼。
  • 執行完成後,DATA 目錄下會重新產生 master.mdf、mastlog.ldf。

2. 進入單一使用者模式還原備份

方法一:命令列啟動
sqlservr.exe -m (或 -c -f -m 最小配置)

方法二:SQL Server 組態管理器 → 服務屬性 → 進階 → 啟動參數加入 -m;,重啟服務。

連線 SSMS(僅允許單一連線),執行:

RESTORE DATABASE master FROM DISK = 'C:\Backup\master.bak' WITH REPLACE;

成功訊息:
已成功地還原了 master 資料庫。正在關閉 SQL Server。
服務自動停止,移除 -m 參數後重新啟動服務即可。

3. 常見錯誤與對策

  • 錯誤 3154:備份集與現有 master 不同 → 必須加 WITH REPLACE。
  • 無法啟動服務:檢查錯誤記錄檔(ERRORLOG),確認資料檔路徑、權限、排序規則相容性。

二、msdb 資料庫還原

msdb 還原流程同一般使用者資料庫,但必須在單一使用者模式下進行。

  1. SSMS 右鍵 msdb → 屬性 → 選項 → 限制存取設為 SINGLE_USER(強制中斷現有連線)。
  2. 執行還原指令:
    RESTORE DATABASE msdb FROM DISK = 'C:\Backup\msdb.bak' WITH REPLACE, RECOVERY;
  3. 還原完成後,將限制存取改回 MULTI_USER。

替代方案:若 msdb 備份損毀或版本不符,可用 SSIS「傳輸登入帳號/作業」任務從同版本實例遷移作業、登入、操作員等物件,前須先建立相同的操作員與 Database Mail 設定檔。

三、model 資料庫還原

model 為新資料庫範本,還原方式同 msdb(單一使用者模式 + WITH REPLACE)。

四、實戰記錄片段(重建 master 完整日誌)


C:\>start /wait e:\setup.exe /qn INSTANCENAME=mssqlserver REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=abc123@!@
C:\>cd "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn"
C:\>sqlservr.exe -m
2008-04-18 15:47:46.56 Server Authentication mode is MIXED.
...
2008-04-18 15:47:47.96 spid5s SQL Server started in single-user mode.
...
2008-04-18 15:47:49.31 Server SQL Server is now ready for client connections.

此時另開 SSMS 視窗執行 RESTORE DATABASE master ...,觀察訊息確認成功。

五、最佳實踐清單

  • 每日完整備份 master、msdb、model(維護計劃或 Agent 作業)。
  • 備份檔異地存放,定期演練「重建 master → 還原 master → 還原 msdb」全流程。
  • 記錄 sa 密碼、排序規則、資料檔預設路徑等關鍵資訊,災難恢復時可快速對應。
  • 生產環境建議啟用資料庫鏡像或 AlwaysOn(SQL 2012+),系統資料庫同步更無感。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved