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

SQL Server 2000 日誌傳送完整實作指南:角色變更、角色互換、監控伺服器部署架構

     編輯:關於SqlServer

SQL Server 2000 企業版/開發版內建日誌傳送,提供資料庫級災難復原。本文詳細記錄角色變更 (計畫性切換)、角色互換 (雙向重建)、監控伺服器部署最佳實踐,含六步驟標準流程與預存程序參數完整說明。

核心概念

  • 主要伺服器:來源資料庫 (Read/Write),執行交易記錄備份
  • 次要伺服器:待命資料庫 (NoRecovery/Standby),套用記錄備份
  • 監控伺服器:獨立第三台,監控備份/複製/還原作業狀態,發送警示
  • 角色變更:次要升級為主要 (計畫性維護或災難)
  • 角色互換:雙方互換並重建雙向日誌傳送

角色變更標準六步驟

步驟 1:轉移與匯出登入帳號 (DTS Transfer Logins Task)

  • 建立 DTS 套件:主要 → 次要轉移登入 (含 SID 解析)
  • 排程每夜執行,確保次要伺服器擁有最新登入定義
  • 同時用 bcp 匯出 master..syslogins 至檔案 (供步驟 5 解析 SID)

步驟 2:降級主要伺服器


EXEC msdb.dbo.sp_change_primary_role
    @db_name = 'Pubscopy',
    @backup_log = 1,      -- 備份尾部記錄
    @terminate = 1,       -- 終止現有連線
    @final_state = 3,     -- 3=ReadOnly/Standby (可接受記錄)
    @access_level = 1;    -- 1=Multiple Users

執行後:主要資料庫變為唯讀、移除日誌傳送排程、產生最終記錄備份。

步驟 3:升級次要伺服器


EXEC msdb.dbo.sp_change_secondary_role
    @db_name = 'Pubscopy',
    @do_load = 1,         -- 套用所有剩餘記錄備份
    @force_load = 1,      -- 強制套用 (對應 sqlmaint Forceload)
    @final_state = 1,     -- 1=Recovered (線上可讀寫)
    @access_level = 1,
    @terminate = 1,
    @keep_replication = 0,
    @stopat = NULL;       -- NULL=套用至最新

執行後:次要資料庫變為線上主要、啟用記錄備份作業 (準備反向傳送)。

步驟 4:通知監控伺服器角色已變更


EXEC msdb.dbo.sp_change_monitor_role
    @primary_server = 'OLD_PRIMARY',
    @secondary_server = 'OLD_SECONDARY',
    @database = 'Pubscopy',
    @new_source = 'OLD_SECONDARY';  -- 新主要伺服器名稱

更新監控資料表 log_shipping_primaries、log_shipping_secondaries 參考位置。

步驟 5:在新主要伺服器解析登入帳號 SID


EXEC sp_resolve_logins
    @dest_db = 'Pubscopy',
    @dest_path = 'D:\',           -- 步驟 1 匯出 syslogins 檔案所在目錄
    @filename = 'syslogins.dat';

注意:必須在 master 資料庫執行 (非使用者資料庫),因預存程序參考 syslogins 系統檢視。

步驟 6:連結資料庫使用者與登入 (sp_change_users_login)


USE Pubscopy;
EXEC sp_change_users_login 'Update_One', 'UserName', 'LoginName';
-- 逐一處理孤立使用者

角色互換:重建雙向日誌傳送

角色變更僅完成單向切換。完整互換需:

  1. 新主要移除原日誌傳送設定
  2. 雙方刪除資料庫維護計劃
  3. 保留所有記錄備份檔案
  4. 新主要建立新維護計劃,指定新次要為目的地
  5. 重新啟動所有作業

實務發現:原維護計劃的記錄備份作業常失敗,建議**完全重建**而非修改現有計劃。

監控伺服器部署建議

部署方式優點缺點建議
獨立第三台 (最佳)主要/次要掛掉仍能發警示、可監控多組成本較高**生產環境標準**
次要伺服器省成本、主要掛掉次要仍可報警次要掛掉失去監控僅兩台伺服器時次佳選
主要伺服器最省主要掛掉監控失效、無法偵測自身問題**強烈不建議**

異地災備架構:監控伺服器置於第三地點,避免單一災害同時影響主要、次要、監控。

常見問題排查

  • Out-of-sync 警示:「最近套用記錄」與「最近備份記錄」時間差超過閾值 → 手動執行一次複製/還原作業即可恢復
  • 記錄備份作業失敗:檢查磁碟空間、網路路徑權限、SQL Agent 服務帳號權限
  • 孤立使用者:步驟 5/6 未完成 → 應用連線失敗,補跑 sp_resolve_logins + sp_change_users_login
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved