當主要伺服器停擺(計畫維護/硬體升級/意外故障),可將次要伺服器提升為新主要伺服器。此操作稱「角色變更」;若舊主要修復後重建雙向傳送,稱「角色互換」。
次要伺服器必須處於 非復原狀態 才能持續套用記錄檔。角色變更時需將其復原並標示為新主要資料庫。
建立 DTS 封裝使用 Transfer Logins Task(限 SQL 2000 DTS 設計師),透過 dtsrun.exe 設定 SQL Agent 作業定期執行(如每晚)。
DTS 不解析 SID,需額外建立兩階段 Agent 作業:
bcp 原始模式匯出 syslogins 至檔案執行 sp_change_primary_role 移除原有記錄傳送功能:
參數功能:備份最後記錄、終止所有連線、設為備援狀態/多使用者存取。回傳碼指示 BACKUP LOG 成敗。
確認無使用者存取後執行 sp_change_secondary_role:
參數說明:@do_load=1 備份並載入所有剩餘記錄;@force_load=1 指定 FORCELOAD;@final_state=1 設為復原模式;@terminate=1 中斷所有連線(ALTER DATABASE IMMEDIATE);@keep_replication=0 保留複寫設定。
注意: 若 EM 仍有開啟連線,ALTER DATABASE 會失敗,需手動中斷。升級後新主要伺服器將產生記錄備份檔,供後續重建傳送關係。