2011-04-07 57 views
0

我有兩個擁有自己的數據庫的應用程序。適合的方法用於同步在線和離線數據

1.)具有vb.net winforms接口的桌面應用程序,在離線企業網絡中運行並將數據存儲在中央數據庫中[SQL Server]
**所有數據輸入和其他辦公操作都執行並存儲在中央數據庫

2.)第二個應用程序已經建立在php上。它具有html頁面並在網絡環境中作爲網站運行。它將所有數據存儲在mysql數據庫中。
**此應用程序僅由註冊會員訪問,並且它們適用於第一個應用程序處理的數據的不同報告。

現在我必須同步在線和離線數據庫服務器之間的數據。我正在計劃如下:
1.)編寫一個小程序,將SQL Server [離線服務器]的所有數據導出爲CVS格式的文件。
2.)登錄到活動服務器的管理部分。
3.)將導出的CVS文件上傳到服務器。
4.)將數據從cvs文件導入到mysql數據庫。

是我計劃好的方法或可以tunned執行好。除了更改應用程序之外,我還會讚賞其他用於數據同步的好方法。網絡應用到其他使用mysql數據庫

回答

1

這是你所要求的實際上並沒有聽起來雙向同步(或數據兩種方式從SQL Server到MySQL,從MySQL到SQL Server的運動)是一件好事,因爲它真的爲你簡化了一些事情。儘管我懷疑你使用CSV的方法(我假設你會使用類似BCP的方法來完成此操作),但其中一個問題是,每次運行該過程時都要移動所有數據,而且基本上是覆蓋整個MySQL分貝每次。這顯然效率不高。更不用說在那個時候MySQL數據庫不會處於可用狀態。

一種替代方法(假設你的SQL Server 2008或更高版本)將考慮使用這種技術,集成了更改跟蹤或整體變更捕獲一起。這是SQL Server中的一項功能,允許您確定自某個特定時間點以來發生更改的數據。你可以做的就是創建一個過程,它只是提取自上次檢查CSV文件以來的更改,然後將這些更改應用到MySQL。如果你這樣做,不要忘記也應用刪除。

1

我不認爲有一個關閉你想,你可以無需定製使用什麼現成的解決方案 - 但MS同步框架(http://msdn.microsoft.com/en-us/sync/default)聽起來很近。

你可能需要編寫一個提供商的MySQL使它去 - 這可能比從頭開始編寫整個數據同步邏輯工作量少。 Voclare是看錯你可以用編寫自己的同步機制面臨的挑戰...

0

不要看看SQL Server集成服務是一個很好的替代。

相關問題