2011-11-08 35 views
1

我要的是能夠使用微軟的同步框架來同步兩個SQL 2008數據庫,這兩者使用SQL 2008修改跟蹤功能。一會是服務器和其他將是一個本地的SQLExpress實例,使用集線器&輻射模型。使用同步框架對本地和遠程SQL 2008修改跟蹤

有一些提示,其他人已經做到了這一點 - 即Syncing SQL Server 2008 Databases over HTTP using WCF & Sync Framework。然而,這種解決方案需要「SqlExpressClientSyncProvider可根據無國界醫生的CodePlex項目網站作爲客戶端同步提供」。同樣的SqlExpressClientSyncProvider也在其他地方暗示。但是,它或者不存在,或者從我試圖找到它的事情中隱藏得很好。

我在搜索中遇到的大多數鏈接和建議都指向MSDN示例站點,它有幾個示例(如這一個http://code.msdn.microsoft.com/Database-SyncSQL-Server-a9752fac),這些示例都通過自定義更改審計使用同步框架 - 爲模式添加了很多可見的開銷,例如邏輯刪除表,觸發器等。這就是我想要避免的。

我很樂意與紐帶,以位爲SqlExpressClientSyncProvider,但是,我懷疑這是做事的MSF 1.0的方式建造。如果有一個「MSF 2.1」方法通過SqlProvider類或者這些方法來做到這一點,那就太好了。

+0

你最終選擇來解決您的問題,其方法是什麼? – Brent

+0

@Brent,我最終用自定義同步解決方案。這些指導帶來了重大的性能問題,無國界醫生所付出的努力數量是寫我自己的三倍。研究無國界醫生的工作方式雖然幫助我更好地理解問題。 – davidpricedev

回答

1

SQL Server更改跟蹤僅在較早的脫機提供程序(SqlCeClientSyncProvider/DbServerSyncProvider)中受支持,該提供程序與Visual Studio中的本地數據庫緩存項目項目使用的提供程序相同。

較新的SqlSyncProvider/SqlCeSyncProvider使用自定義的跟蹤機制,並且需要大量的自定義才能使其與Sql Change Tracking一起使用,而不是編寫自己的自定義提供程序。

SqlExpressClientSyncProvider是一個示例提供程序,此後,MS已從下載網站中將其取出。

這個環節還是有它的一些位,但:http://www.8bit.rs/blog/2009/05/debugging-sql-express-client-sync-provider/

+1

所以你基本上是說,即使Sql Server中更改跟蹤似乎是更好的辦法微軟已經與2.1過時了嗎?看起來像是非常有限的示例,似乎缺少部分並依賴於Sync 1.0 SyncAgent和SyncAdapter。 Sql Server更改跟蹤是否允許動態模式更改?我用傳統的SyncOrchestrator方法和Deprovision/Re-Provision功能實現了2.1。然而,來自所有額外跟蹤表等的數據庫膨脹對於我們正在同步的表上的SqlExpress是個問題。 – Brent

+0

這個鏈接很棒,唯一的地方我可以找到任何適當的例子。但是他們只能雙向工作,現在我需要支持每個表的不同方向。 – Brent

+1

同步方向處於同步組或同步範圍級別。您應該將相同同步方向的表分組在同一個同步組中,否則您必須爲每個表創建單獨的同步組。 – JuneT