前言
SQL Server 2008 在複寫領域引入重大功能增強,聚焦於高可用性、管理性、大型拓撲支援。本文詳細解析三大核心增強:對等交易複寫、複寫監視器、分區表交易複寫。
一、對等交易複寫增強
對等複寫允許多個節點互為發佈者/訂閱者,適用於地理分散的高可用架構。
1. 衝突偵測 (預設啟用)
- 散發代理程式能在同步過程中偵測衝突
- 偵測到衝突時,在受影響節點停止處理變更,防止資料不一致擴散
- 可透過
sp_configure_peerconflictdetection 設定
2. 非靜止新增節點
重大突破:早期版本新增節點需讓整個拓撲靜止(停止所有活動、確保變更傳遞完畢)。2008 允許不中斷現有複寫直接加入新節點:
- 使用「設定對等拓撲精靈」圖形化操作
- 或指定
sp_addsubscription @sync_type = 'initialize from lsn'
- 新節點可同時連接多個現有節點,無需全拓撲靜止
3. 圖形化拓撲設定精靈
- 提供拓撲檢視器:直觀展示節點連接關係
- 支援常見操作:新增/刪除節點、建立節點間連接
- 彈性拓撲:節點 A-B-C 全互連,節點 D 僅連 A、B(網格模式強制全互連,無法達此彈性)
二、複寫監視器易用性大幅提升
1. 通用格線增強
- 欄位選擇:右鍵 →「選擇要顯示的欄位」
- 多欄位排序:右鍵 →「排序」
- 欄位值篩選:右鍵 →「篩選器」/「清除篩選器」
- 設定針對各格線獨立記憶
2. 代理程式集中檢視
- 「公用作業」頁籤更名為 「代理程式」
- 集中顯示發佈伺服器上所有發佈關聯的代理程式與作業:
- 快照集代理程式 (所有發佈)
- 記錄讀取代理程式 (交易發佈)
- 佇列讀取代理程式 (佇列更新訂閱)
- 維護作業 (所有發佈)
- 散發/合併代理程式屬於訂閱層級,在訂閱節點檢視
3. 警告與代理程式分頁
- 原「警告和代理程式」頁籤拆分為獨立 「警告」 與 「代理程式」 頁籤
- 代理程式頁籤:自動重新整理,即時監控
- 警告頁籤:手動重新整理,專注效能閾值告警
三、分區表交易複寫支援增強
痛點:早期版本支援發佈分區表,但無法使用 ALTER TABLE ... SWITCH PARTITION 在分區間移動資料,嚴重限制分區管理運維。
2008 解決方案
- 允許在發佈資料庫執行
SWITCH PARTITION 命令
- 可選擇是否將 SWITCH 命令複寫並套用至每個訂閱者
- 支援滑動視窗、歸檔、資料清理等分區管理作業不中斷複寫
應用場景
-- 將 2023 年資料從作用分區切換至歸檔分區
ALTER TABLE Sales.Orders SWITCH PARTITION 1 TO Sales.Orders_Archive PARTITION 1;
-- 複寫會同步此 DDL 到訂閱端(若啟用)
部署建議
- 對等複寫:評估衝突解決策略(最後寫入勝、自訂邏輯),規劃拓撲圖,善用精靈管理
- 監視器:建立基準效能指標,設定關鍵警告(延遲、錯誤率、代理程式狀態)
- 分區表:確認訂閱端分區結構一致,測試 SWITCH 複寫行為後再上線
結語
SQL Server 2008 複寫增強解決了大型企業部署的核心痛點:多主寫入衝突、擴展靈活性、運維可視化、分區管理相容性。善用這些功能,能構建更強健、可維護的分散式資料架構。