1

我正在研究將在5臺不同機器上運行的應用程序。每臺機器的數據將存儲在同一臺機器上。我必須將所有機器的數據與中央數據庫同步。我無法找到這個問題的答案:什麼是最好的方法呢?與服務器同步多個客戶端的最佳方法

  1. 在每臺機器上日程SQL作業將同步數據與中央服務器
  2. 服務器將請求每臺機器同步的數據

利弊請諮詢。

回答

1

您可以配置SQL Server使用複製和發佈副本到每個5臺機器的。

你,如果你需要在所有計算機上的所有變化,如果是你需要合併複製來評價,他們還有其他的結構和選項,如過濾器,只在你的遠程計算機的具體數據。

0

微軟已經解決了這個問題你 - 他們已經開發了Sync framework。我在4年前就使用了這個版本,這很好 - 但正如@Juan在他的評論中所說的那樣,它現在不再被微軟積極開發,開源版本似乎很安靜。

有兩個明顯的選擇。

可以使用(合併)的複製,如果你想解決這個作爲一個數據庫的問題。這是最簡單的解決方案 - 複製只是將數據從客戶端複製到目標數據庫,而Microsoft則處理所有調度,衝突解決等。

但是,客戶端之間通常存在一些數據或業務邏輯 - 常見的問題是您的客戶端之間的主鍵或查找值之間可能存在衝突。例如,如果使用整數作爲主鍵,並且機器1和機器2都將「1000」指定爲「銷售」表中的記錄的主鍵,則複製變得非常棘手。 另一種常見的情況是,必須強制執行一些業務邏輯,這在單臺機器上很簡單,但在處理偶爾連接的多臺機器時很難。例如,如果客戶下訂單,應用程序可能要檢查總訂單價值是否不超過客戶的信用額度 - 但如果另一客戶有另一個待處理交易,該怎麼辦?

在這種情況下,你可能要創建一個面向服務的同步設計。 微軟爲此提供了WCF。雖然更靈活,但實施起來可能要多得多。在此模型中,您可能將客戶端上的本地數據庫視爲緩存,並將消息推送到中央計算機以反映用戶交互。

+0

這個框架將不再更新,我幾年前使用和它的作品,但它是非常困難的工作原理,並更新第一準備後的數據庫架構。使用sql配置工具進行復制是一個更強大的選項。 – Juan

相關問題