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

SQL Server 複寫技術實作雙資料庫同步完整指南

     編輯:關於SqlServer

業務場景

開發與測試環境、主備伺服器、或異地備援節點之間,常需保持結構與資料同步。手動同步易遺漏、易出錯,SQL Server 內建的 複寫 機制提供自動化、可靠的解決方案。

架構選擇:合併式 vs 交易式 vs 快照式

  • 快照式:定期完整覆寫,適合資料量小、變動少、允許延遲的場景。
  • 交易式:近即時傳遞交易記錄,適合高一致性需求、資料量中大型。
  • 合併式:雙向同步、允許離線操作,適合行動裝置、分散式節點。

本文以 快照式 + 推送訂閱 示範最基礎的單向同步設定。

環境準備

角色電腦名OSSQL 版本
發布/散發端ZehuaDbWin 2000 ServerSQL 2000 Personal
訂閱端ZlpWin 2000 ServerSQL 2000 Personal

逐步設定流程

1. 建立網域服務帳號

於發布端建立網域帳號 zlp/zlp,供 SQL Server 服務與複寫代理程式使用。

2. 變更 SQL Server 服務登入身分

「服務」中將 MSSQLServer 服務登入身分改為剛建立的網域帳號 zlp,重啟服務。

3. 設定散發者

企業管理員 → 複寫 → 「設定發布、訂閱與散發」→ 選擇本機為散發者 → 全部採預設值完成。

4. 建立發布

  • 工具 → 複寫 → 「建立與管理發布」
  • 選擇資料庫 SZ → 快照式發布
  • 勾選需同步的資料表/物件 → 完成嚮導

5. 建立推送訂閱

  • 複寫 → 「設定發布、訂閱與散發」→ 「訂閱者」→ 「新增」→ 「SQL Server 資料庫」
  • 輸入訂閱者名稱 ZLP → 選擇 SQL Server 驗證
  • 完成後,於「複寫監視器」中對該訂閱點選「強制新增」初始化同步。

6. 驗證同步

-- 發布端插入測試資料
INSERT INTO WQ_NEWSGROUP_S VALUES ('測試成功', 5);

於複寫監視器啟動快照代理程式 → 啟動訂閱同步 → 確認訂閱端資料表出現新列且無紅叉錯誤。

進階維護建議

  • 監控延遲:定期檢查「複寫監視器」中代理程式狀態與延遲指標。
  • 衝突處理:合併式複寫需規劃衝突解決優先權(發行者優先/訂閱者優先/自訂邏輯)。
  • 結構變更:DDL 變更需透過 sp_repladdcolumn 等複寫預存程序傳播,或重新產生快照。
  • 安全性:生產環境務必使用憑證/加密連線,避免明文傳輸 sa 密碼。

現代替代方案

SQL Server 2016+ 提供 Always On 可用性群組、異地複寫、Azure SQL Data Sync 等更現代化的高可用與同步方案,新架構建議優先評估。

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