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

低成本實現 SQL Server Standby 熱備架構:xcopy + Agent 作業方案

     編輯:關於SqlServer

企業級高可用 (AlwaysOn/叢集) 成本高昂。對於 RTO/RPO 要求在小時級、可接受人工切換的中小型系統,本文介紹基於 xcopy 檔案複製與 SQL Agent 自動還原的低成本 Standby 熱備方案。

架構原理

生產端:完整備份 (每日 04:00) + 交易記錄備份 (每 20 分鐘) → 共享資料夾
待命端:xcopy 定時拉取備份檔 → SQL Agent 作業執行 RESTORE WITH STANDBY → 保持唯讀恢復狀態

優勢:無需昂貴共享存儲、無網域控制器依賴、配置簡單透明。
劣勢:故障切換需人工介入 (修改 IP/DNS/連線字串)、可能丟失最後一段記錄備份資料。

實施步驟

1. 生產端備份策略配置

  • 資料庫恢復模式:**完整 (FULL)**
  • 維護計畫:
    • 每日 04:00 完整備份至 \\prod-server\sqlbackup\db_test\
    • 00:00-23:59 每 20 分鐘交易記錄備份至同目錄
    • 清理任務:保留最近 24 小時備份檔
  • 共享資料夾權限:待命端服務帳號具備讀取權限。

2. 待命端自動還原作業

建立 SQL Agent 作業,每 20 分鐘執行 (錯開備份時間):

-- 步驟 1: xcopy 拉取最新備份檔
EXEC xp_cmdshell 'xcopy "\\prod-server\sqlbackup\db_test\*.bak" "D:\StandbyBackup\" /D /Y /R'; -- /D 只複製更新檔

-- 步驟 2: 識別最新完整備份與後續記錄備份 (邏輯略,建議用 PowerShell 腳本生成動態 RESTORE 指令)
-- 步驟 3: 執行 STANDBY 還原
RESTORE DATABASE db_test
FROM DISK = 'D:\StandbyBackup\db_test_full_20240101_0400.bak'
WITH STANDBY = 'D:\StandbyBackup\db_test_standby.ldf', -- 回復點檔案
     NORECOVERY, -- 後續記錄備份用 NORECOVERY
     STATS = 10,
     MOVE 'db_test' TO 'D:\Data\db_test.mdf',
     MOVE 'db_test_log' TO 'D:\Log\db_test.ldf';

-- 後續記錄備份迴圈
RESTORE LOG db_test
FROM DISK = 'D:\StandbyBackup\db_test_log_20240101_0420.trn'
WITH STANDBY = 'D:\StandbyBackup\db_test_standby.ldf', NORECOVERY;

3. 故障切換手冊 (人工執行)

  1. 確認生產端確實不可用 (避免腦裂)。
  2. 待命端執行最終記錄備份還原:RESTORE DATABASE db_test WITH RECOVERY;
  3. 修改待命端 IP/主機名為生產端原值,或更新 DNS/應用連線字串指向待命端。
  4. 驗證應用連線正常、資料一致性。
  5. 事後根因分析、修復生產端、重建雙向同步。

關鍵指標設定範例

指標目標值本方案達成
RTO (恢復時間目標)1 小時✓ 人工切換約 15-30 分鐘
RPO (恢復點目標)30 分鐘✓ 記錄備份每 20 分鐘,最多丟 20 分鐘
硬體成本最低✓ 僅需一台待命伺服器

進階優化建議

  • 將 xcopy 升級為 robocopy /MIR /R:2 /W:5 增強斷點續傳與錯誤重試。
  • 使用 PowerShell 腳本動態掃描備份目錄、自動生成遞增 RESTORE 指令,消除手工維護還原鏈負擔。
  • 啟用備份壓縮 (WITH COMPRESSION) 減少網路傳輸時間與儲存空間 (SQL 2008+ Enterprise/Standard)。
  • 定期演練切換流程,驗證 RTO/RPO 真實表現。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved