遊戲營運多台資料庫伺服器,需將資料自動同步至中央統計伺服器。SQL Server 複寫可滿足此需求,分為快照、交易、合併三種類型;本文以 交易式複寫 為例逐步實作。
複寫架構三角色
- 發行者 (Publisher): 來源資料庫伺服器,發佈資料變更。
- 散發者 (Distributor): 儲存變更的中介資料庫 (散發資料庫),負責轉送。
- 訂閱者 (Subscriber): 接收資料的目標伺服器,可訂閱多個發行者。
三種複寫類型比較
| 類型 | 特性 | 適用場景 |
| 快照複寫 | 特定時間點完整資料快照,不追蹤變更 | 資料量小、變更少、定期重新整理 |
| 交易複寫 | 初始快照後,近乎即時傳遞 DML/DDL 變更,保證交易順序一致 | 高可用性、報表伺服器、異地備援 |
| 合併複寫 | 雙向同步,觸發器追蹤兩端變更,定期合併解決衝突 | 行動裝置、離線操作、多寫入點 |
逐步建立交易式複寫 (SSMS 圖形化)
- 兩台伺服器建立相同資料庫、結構、基礎資料。
- 發行者:SSMS → 複寫 → 本地發行集 → 右鍵「新增發行集」。
- 選擇散發者 (可指定本機)、快照資料夾路徑、發行資料庫。
- 選擇「交易式發行集」,勾選要發行的資料表/欄位/物件。
- 設定快照代理程式排程、執行帳號、命名發行集完成。
- 訂閱者:SSMS → 複寫 → 本地訂閱 → 右鍵「新增訂閱」。
- 選擇發行者、發行集、訂閱類型 (推送/提取)、目標資料庫、代理程式安全性。
- 驗證:發行者新增一筆資料,訂閱者即可查詢到。
關鍵點: 交易式複寫要求發行資料庫為「完整復原模式」或「大量記錄復原模式」;散發者建議獨立伺服器以降低發行者負載。