當 SQL Server 系統資料庫(特別是 master)損毀,或僅剩下 `.mdf` 主資料檔而遺失 `.ldf` 記錄檔時,如何快速恢復服務?本文整理兩大實戰場景的完整操作流程。
適用於 master、model、msdb 等系統資料庫損毀、服務無法啟動的情況。
從安裝目錄的 `Templates` 資料夾複製以下檔案至 `DATA` 目錄覆蓋:
路徑範例:
來源:`X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\Templates`
目的:`X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA`
定位 `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
執行完成無提示訊息,請查看 `C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\Summary.txt` 確認是否成功。最後在 SQL Server Configuration Manager 中啟動 SQL Server 服務。
適用於遺失記錄檔、資料庫進入「可疑」或「緊急」模式的情境。
ALTER DATABASE [資料庫名稱] SET EMERGENCYALTER DATABASE [資料庫名稱] SET SINGLE_USEREXEC sp_dboption '[資料庫名稱]', 'single user', 'true'DBCC CHECKDB ('[資料庫名稱]', REPAIR_ALLOW_DATA_LOSS)DBCC CHECKDB ('[資料庫名稱]', REPAIR_REBUILD)。注意:REPAIR_ALLOW_DATA_LOSS 可能導致資料遺失,務必先備份 MDF。ALTER DATABASE [資料庫名稱] SET MULTI_USER關鍵提醒:此流程屬高風險操作,建議在測試環境先行演練,正式環境操作前務必確保有完整備份或檔案複本。