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

SQL Server 2000 記錄傳送角色切換詳解(一):核心概念、六步驟流程、登入遷移與主要伺服器降級

     編輯:關於SqlServer

角色變更:業務連續性關鍵機制

當主要伺服器停擺(計畫維護/硬體升級/意外故障),可將次要伺服器提升為新主要伺服器。此操作稱「角色變更」;若舊主要修復後重建雙向傳送,稱「角色互換」。

次要伺服器必須處於 非復原狀態 才能持續套用記錄檔。角色變更時需將其復原並標示為新主要資料庫。

六大基本步驟

  1. 轉移與匯出登入帳號
  2. 降級主要伺服器
  3. 升級次要伺服器
  4. 通知監控伺服器角色已變更
  5. 在次要伺服器解析登入帳號
  6. 連結資料庫存取與權限

步驟 1:轉移與匯出登入帳號

建立 DTS 封裝使用 Transfer Logins Task(限 SQL 2000 DTS 設計師),透過 dtsrun.exe 設定 SQL Agent 作業定期執行(如每晚)。

DTS 不解析 SID,需額外建立兩階段 Agent 作業:

  1. bcp 原始模式匯出 syslogins 至檔案
  2. 複製檔案至次要伺服器,供步驟 5 使用

步驟 2:降級主要伺服器

執行 sp_change_primary_role 移除原有記錄傳送功能:

程式碼範例 1:sp_change_primary_role
USE master
GO
EXEC msdb.dbo.sp_change_primary_role
    @db_name = 'Pubscopy',
    @backup_log = 1,
    @terminate = 1,
    @final_state = 3,
    @access_level = 1

參數功能:備份最後記錄、終止所有連線、設為備援狀態/多使用者存取。回傳碼指示 BACKUP LOG 成敗。

步驟 3:升級次要伺服器

確認無使用者存取後執行 sp_change_secondary_role:

程式碼範例 2:sp_change_secondary_role
USE master
GO
EXEC msdb.dbo.sp_change_secondary_role
    @db_name = 'Pubscopy',
    @do_load = 1,
    @force_load = 1,
    @final_state = 1,
    @access_level = 1,
    @terminate = 1,
    @keep_replication = 0,
    @stopat = null

參數說明:@do_load=1 備份並載入所有剩餘記錄;@force_load=1 指定 FORCELOAD;@final_state=1 設為復原模式;@terminate=1 中斷所有連線(ALTER DATABASE IMMEDIATE);@keep_replication=0 保留複寫設定。

注意: 若 EM 仍有開啟連線,ALTER DATABASE 會失敗,需手動中斷。升級後新主要伺服器將產生記錄備份檔,供後續重建傳送關係。

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