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

SQL Server 2008 資料庫同步兩大方案:SQL Agent 作業與發佈/訂閱複寫完整操作指南

     編輯:SQL Server 2008

資料庫同步常見需求:異地備份、報表伺服器卸載、異構平台整合。本文介紹兩種原生同步方案:SQL Agent 作業 (T-SQL 腳本排程) 與 發佈/訂閱複寫 (推式/拉式),並以大量截圖詳細說明複寫的發佈建立、文章選擇、快照代理、代理安全性、推式訂閱建立、同步排程、常見驗證錯誤排解。

方案一:SQL Agent 作業 (簡單、彈性、適用結構固定的全量/增量同步)

  • 建立連結伺服器 (sp_addlinkedserver) 或使用 OPENROWSET/OPENDATASOURCE。
  • 撰寫同步預存程序 (MERGE / INSERT/UPDATE/DELETE 配合 CHANGE_TRACKING / CDC / 時間戳)。
  • 建立 Agent 作業排程執行 (每日/每小時)。
  • 優點:完全掌控邏輯、無複寫基礎設施開銷;缺點:需自行處理衝突、Schema 變更、監控告警。

方案二:發佈/訂閱複寫 (企業級、支援增量、Schema 變更傳播、監控完善)

核心角色:發佈者 (來源) → 散發者 (中繼/暫存) → 訂閱者 (目標)。可發佈:資料表、預存程序、使用者函數。

1. 建立發佈 (發佈端 SSMS)

  1. 展開 複寫 → 本地發佈,右鍵 新增發佈。
  2. 選擇發佈資料庫 → 發佈類型:
  • 快照式:無主鍵表、資料量小、低頻同步。
  • 交易式:有主鍵、高頻增量、低延遲 (生產常用)。
  • 合併式:雙向同步、離線客戶端。

發佈類型選擇

  1. 選擇文章 (資料表/檢視/SP/函數) — 可按資料行/資料列篩選 (右側顯示篩選 WHERE 子句)。

文章選擇

篩選條件

  1. 快照代理排程:設定頻率 (每日/每週/每月);勾選「立即建立快照」首次同步。

快照代理排程

修改同步頻率

  1. 代理安全性:
  • 快照代理執行帳號 (Windows) — 建議與 SQL Agent 服務帳號一致。
  • 連接發佈者帳號 (SQL 驗證) — 建議 sa 或專用複寫帳號。

代理安全性

安全性帳號設定

  1. 命名發佈完成。

發佈名稱

發佈完成

2. 建立推式訂閱 (發佈端發起,散發者推送至訂閱者)

  1. 複寫 → 本地訂閱,右鍵 新增訂閱。
  2. 選擇發佈 → 訂閱類型:推式訂閱 (散發者主動連線訂閱者)。

新增訂閱

選擇發佈

訂閱類型

  1. 散發代理位置:在散發者端執行 (推式)。

散發代理位置

  1. 選擇訂閱者與訂閱資料庫:
  • 點擊 加入 SQL Server 訂閱者 → 輸入**訂閱者電腦名稱** (非 IP) → SQL 驗證 (sa/專用帳號)。
  • 訂閱資料庫:若訂閱者已有同名資料庫自動列出;否則可選「新建資料庫」。
  • 訂閱帳號需具備目標資料庫 db_owner 權限。

訂閱資料庫

加入多個訂閱者

  1. 散發代理安全性:
  • 執行帳號 (Windows) — 散發者服務帳號。
  • 連接訂閱者帳號 (SQL 驗證) — 訂閱者端 sa/專用帳號。

散發代理安全性

連接訂閱者帳號

  1. 同步排程:連續執行 (低延遲) / 依排程 (如每日/每小時) / 僅手動。

同步排程

  1. 初始化:立即 / 首次同步時。
  2. 完成精靈。

訂閱完成

3. 常見問題:訂閱代理報錯「Windows 驗證失敗,來自不受信任網域」

原因:企業管理員/舊版工具中訂閱者屬性預設登入方式為 Windows 驗證,跨網域/工作群組失效。

解決:在發佈端 SSMS → 複寫 → 設定發佈、訂閱者和散發者 → 訂閱者 → 屬性 → 登入方式改為 **SQL Server 驗證**,輸入訂閱者端 sa 帳密。

方案選擇建議

場景建議方案
少量資料表、結構固定、團隊熟悉 T-SQLSQL Agent 作業 + MERGE/CDC
大量資料表、頻繁 Schema 變更、需監控/重試/延遲告警交易式複寫 (推式/拉式)
雙向同步、離線用戶端合併式複寫
異構目標 (Oracle, PostgreSQL)異構複寫 / SSIS / CDC + Kafka

掌握 Agent 作業與複寫兩大原生同步技術,可因應從簡單到企業級的各類資料同步需求。

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