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

重建 SQL Server master 資料庫實戰 (三):恢復執行個體與驗證上線

     編輯:關於SqlServer

master 資料庫已重建完成,系統資料庫回歸初始狀態。本文說明如何依序執行前置準備產生的腳本,恢復使用者資料庫、登入、作業、權限等,並完成服務帳號驗證,讓執行個體正式對外服務。

前置條件

  • 已閱讀第一、二篇並完成所有準備腳本 (0.sql ~ 4.sql 等)
  • master 資料庫已重建完成

恢復執行步驟

1. 附加所有使用者資料庫

執行第一篇準備的 1.sql。執行前請確認腳本不包含 master、msdb、model、tempdb。完成後執行個體已擁有所有使用者資料庫。

2. 重建登入

執行第一篇準備的 2.sql (由 sp_help_revlogin 產生)。注意:此時預設資料庫可能仍為系統資料庫,因使用者資料庫剛附加完成;若登入指定的預設資料庫尚未附加會報錯,但不影響登入建立本身。

3. 修正資料庫 dbo 擁有者

執行第一篇準備的 3.sql,執行 sp_changedbowner 將每個使用者資料庫的 dbo 映射回正確登入。

4. 重建 master/msdb 自訂物件

執行準備階段備份的自訂預存程序、函數、類型等建立腳本。若前置步驟已執行過同樣腳本,重複執行通常不會報錯 (或可先 DROP IF EXISTS),可安全重跑。

5. 重建 SQL Agent 作業、操作員、警示

執行備份的 Agent 物件建立腳本。注意:作業排程 (Schedules) 會隨作業建立腳本一併建立,無需單獨處理。

6. 恢復系統資料庫 Securables

驗證 4.sql 僅包含系統資料庫 (master、msdb、model) 的權限授與腳本,執行之。使用者資料庫權限隨附加自動保留,無需處理。

7. 驗證並修正 SQL 服務帳號

重建後,SQL Server、SQL Server Agent、SQL Browser 服務帳號可能重置為預設值。請在 SQL Server Configuration Manager 中:

  1. 檢查三個服務的登入帳號是否符合原環境需求 (網域帳號/虛擬帳號/本地系統)
  2. 如有變更,更新並重啟服務
  3. 確認服務啟動無誤後,再開放使用者存取

完成確認

  • 所有使用者資料庫狀態 ONLINE
  • 登入可正常連線,權限正確
  • Agent 作業可手動/排程執行
  • 備份/維護計畫運作正常
  • 定序已變更為目標值

總結

三篇文章完整涵蓋:準備腳本產生 → 執行重建 → 恢復驗證。關鍵在於「重建前把所有中繼資料腳本化」,將不可控的手工操作轉為可重複、可驗證的自動化流程。此方法同樣適用於災難恢復演練,建議定期演練以確保腳本有效性。

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