SQL Server 2005 在效能與功能上實現革命性躍升,正式跻身企業級資料庫行列。其高可用性方案包含資料庫鏡像、複寫、故障轉移叢集與日誌傳送。本文聚焦複寫技術,解析核心概念、三種複寫類型,並以交易式複寫為例演示跨實例配置全流程。
一、複寫核心概念與角色
複寫將資料或資料庫物件從一個資料庫複製分發至另一個資料庫,並同步維護一致性,支援區域網路、廣域網路、撥號、無線與 Internet 環境。
複寫拓撲由三大角色組成,類比報紙發行產業:
- 發行者:資料來源,如報社(提供內容並印刷)。
- 散發者:儲存區與轉發中心,如郵局(將報刊送達訂戶)。每個發行者對應散發者上單一散發資料庫,儲存複寫狀態、中繼資料與資料佇列。單一伺服器常同時扮演發行者與散發者,稱為本地散發者。
- 訂閱者:接收複寫資料的資料庫實例,如訂戶。可從多個發行者/發行集接收資料。

圖 1:複寫伺服器關係圖
二、三種複寫類型
- 交易式複寫:將發行者上發生的資料修改,依發生順序與交易邊界套用至訂閱者,保證發行端交易一致性。適合高頻率、低延遲同步場景。
- 快照式複寫:以特定時間點的完整資料快照分發,不監視更新。同步時產生完整快照送至訂閱者。適合資料量小、變動少、容忍延遲的場景。
- 合併式複寫:從快照開始,透過觸發器追蹤發行者與訂閱者雙端的後續修改。訂閱者連線時雙向交換變更。適合行動/離線用戶、多點更新場景。
三、實戰:配置交易式複寫 (同機雙實例)
環境:同一台機器兩個實例 SERVER01(發行者+散發者,本地散發者)與 SERVER02(訂閱者)。發布 DBCopy 資料庫中 Person 表(含主鍵),資料庫復原模式為完整,SQL Agent 自動啟動。
步驟 1:前置同步
完整備份 SERVER01 DBCopy,於 SERVER02 還原,確保發布前源目標資料一致。
步驟 2:於 SERVER01 配置發行與散發
- SSMS 物件總管 → 複寫 → 本地發行集 右鍵 → 新增發行集。

- 散發者選擇 本機(本地散發者)。

- 快照資料夾使用預設路徑。
- 選擇發布資料庫
DBCopy。
- 發行類型選 交易式發行集。

- 選擇發行物件:勾選
Person 表(可進一步選擇特定欄位/篩選列)。
- 設定 SQL Agent 執行帳戶。

- 命名發行集為
PersonCopy,完成精靈。
步驟 3:於 SERVER02 配置提取式訂閱
- SSMS → 複寫 → 本地訂閱 右鍵 → 新增訂閱。

- 選擇發行者
SERVER01,找到 PersonCopy 發行集。
- 訂閱類型選 提取式訂閱(由訂閱者主動請求)。

- 指定訂閱資料庫(已還原的
DBCopy)。
- 設定散發代理程式安全性(SQL Agent 帳戶),完成精靈。
驗證
於 SERVER01 Person 表插入一筆記錄,SERVER02 幾乎即時可見同步資料,確認交易式複寫低延遲特性。