承接前文準備工作,本文詳細說明如何執行 master 資料庫重建,並恢復 SQL Server 執行個體至重建前狀態。重建過程實質上會銷毀現有執行個體並從安裝媒體重新部署系統資料庫,操作前務必完成第一篇的所有準備腳本。
執行第一篇準備的 0.sql,將所有使用者資料庫分離。重建 master 時不保留使用者資料庫中繼資料,預先分離可確保資料檔案完整,避免重建過程中檔案損毀導致資料遺失。
將 SQL Server 安裝光碟/ISO 掛載至伺服器光碟機,或複製安裝檔案至本機/共享資料夾。
以系統管理員身分執行 cmd,執行以下指令 (依實際路徑與參數調整):
start /wait <path>\setup.exe [/qb | /qn] {VS=<VSName>} INSTANCENAME=<InstanceName> REINSTALL=SQL_Engine REBUILDDATABASE=1 ADMINPASSWORD=<Current_Domain_User_Password> SAPWD=<New_SA_Password> SQLCOLLATION=<New_Collation>
| 參數 | 說明 |
|---|---|
<path> | setup.exe 實體路徑,如 C:\Temp\MSSQL.1 |
/qb 或 /qn | /qb 顯示基本 UI 並封鎖錯誤彈窗;/qn 完全靜默。建議使用 /qb 以監控進度 |
VS | 叢集虛擬伺服器名稱,非叢集可省略 |
INSTANCENAME | 具名執行個體名稱,預設執行個體可省略 |
REINSTALL=SQL_Engine | 指定重新安裝 Database Engine |
REBUILDDATABASE=1 | 觸發系統資料庫重建 |
ADMINPASSWORD | 執行重建之網域帳號密碼,需為 sysadmin 角色成員 |
SAPWD | 重建後 sa 新密碼,請設定強式密碼 |
SQLCOLLATION | 新的伺服器定序,如 SQL_Latin1_General_CP1_CI_AS |
c:> start /wait C:\temp\MSSQL.1\setup.exe /qb VS=CLUST1 INSTANCENAME=NODE1 REINSTALL=SQL_Engine REBUILDDATABASE=1 ADMINPASSWORD=DBA1pwd SAPWD=!grac3undrpre$$ure! SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS
c:> start /wait C:\temp\MSSQL.1\setup.exe /qb INSTANCENAME=NODE1 REINSTALL=SQL_Engine REBUILDDATABASE=1 ADMINPASSWORD=DBA1pwd SAPWD=!grac3undrpre$$ure! SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS
c:> start /wait C:\temp\MSSQL.1\setup.exe /qb REINSTALL=SQL_Engine REBUILDDATABASE=1 ADMINPASSWORD=DBA1pwd SAPWD=!grac3undrpre$$ure! SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS
重建完成後,立即備份 master、model、msdb。建議保留重建前備份,直到確認重建成功。
重建後系統資料庫回歸 RTM 版本,必須依序套用原本已安裝的所有 SP 與 Hotfix。
修補完成後再備份一次,確保擁有最新狀態的乾淨備份。
依序執行準備階段產生的腳本,恢復登入、作業、操作員、使用者資料庫附加、權限等,使執行個體回到重建前狀態,僅定序不同。
本篇完成 master 重建核心動作。下一篇將說明如何重新附加使用者資料庫並恢復所有使用者層級物件,完成整個重建流程。