2013-05-08 72 views
6

我意識到這是一個非常討論的話題,但我所看到的所有建議似乎涉及直接訪問SQL Server,在我們的實例中這並不理想。同步遠程SQL Server數據庫與本地SQL Server Compact數據庫的最佳方法是什麼?

我們的場景是一個遠程SQL Server數據庫(比如說)有100個表。我們正在開發一個輕量級的桌面應用程序,該應用程序將使用SQL Server Compact數據庫並定期將遠程服務器的20個表的子集同步。

我想控制複製的發生方式,因爲遠程服務器距離千米遠,速度對我們來說是一個主要問題。

此外,我不需要同步每個表中的所有記錄 - 只有那些與每個用戶相關的記錄。

我很喜歡SQL Merge設施,但它要求客戶端連接到遠程SQL Server。目前這是不可能的,我們正在考慮通過通過我們的應用程序或其他方法訪問的Web服務連接到遠程服務器。

歡迎任何建議。

UPDATE

只是爲了澄清,互聯網連接將是間歇性的,這就是爲什麼我們需要兩個數據庫同步的主要原因。

回答

1

對於客戶端使用緊湊型數據庫這一事實,在此場景中對可用選項有一些相當大的限制。

考慮到您希望的限制和性能要求,您可以考慮實施基於服務的http端點以使所需的表保持同步。如果你的架構允許的話,這樣做會異步地提高性能,但再一次,根據你的體系結構,它甚至可能不可行。

還有一件事要考慮的是使用網絡套接字而不是標準http連接來進行上述Web服務。這樣你可以保持客戶端實時同步,因爲網絡套接字是真正的全雙工實時連接。與此相關的主要問題是,您必須確保所有客戶端都符合網絡套接字規範,或者提供一個回退模擬與不符合標準的客戶端的仿真框架的WebSocket連接。

不知道這是否有幫助。

0

你不能使用MS Sync框架嗎?

非常適合您的場景AFAIK。

快速谷歌把這個教程起來......

http://social.technet.microsoft.com/wiki/contents/articles/2190.tutorial-synchronizing-sql-server-and-sql-server-compact-sync-framework.aspx

+0

MS Synch Framework是否可以通過HTTP使用?我認爲它需要直接鏈接到兩個數據庫? – cusimar9 2013-05-08 15:15:21

+0

我相信所以根據這裏的答案︰http://stackoverflow.com/questions/503832/sync-framework-can-you-sync-over-http – nakchak 2013-05-08 15:21:33

相關問題