在監控伺服器執行 sp_change_monitor_role:
USE master
EXEC msdb.dbo.sp_change_monitor_role
@primary_server = 'oahu\sql2k_1',
@secondary_server = 'oahu\sql2k_2',
@database = 'Pubscopy',
@new_source = 'oahu\sql2k_2'
效果:log_shipping_secondaries 移除舊次要伺服器記錄;log_shipping_primaries 將舊主要伺服器名稱更新為新主要伺服器。不會自動新增新配對記錄。
使用步驟 1 匯出的 syslogins.dat,在 master 資料庫 執行:
USE master
EXEC sp_resolve_logins
@dest_db = 'Pubscopy',
@dest_path = 'd:\',
@filename = 'syslogins.dat'
關鍵:必須在 master 執行,因預存程序使用非完整名稱參考 syslogins。
對每個登入帳號執行(在使用者資料庫中):
USE pubscopy
EXEC sp_change_users_login 'Update_One', 'UserName', 'LoginName'
確保 SQL 登入正確對應資料庫使用者與權限。
至此完成「角色變更」,舊主要→新次要、舊次要→新主要,但尚未建立新的記錄傳送關係。
注意:Enterprise Manager 監視器可能暫時回報「Out of sync」,直到最新備份被載入後自動恢復正常。
| 部署位置 | 優缺點分析 |
|---|---|
| 獨立第三台伺服器(最佳) | 主要/次要任一失效仍可發送警示;可同時監控多組配對 |
| 次要伺服器(次佳) | 主要失效時監視器仍運作;若災難波及次要則失效 |
| 主要伺服器(最差) | 主要失效時監視器同步失效,無法發送警示 |
若僅有兩台伺服器,務必放在次要伺服器;生產環境強烈建議獨立監控伺服器。