我正在編寫系統,需要將數據從客戶端本地託管SQL數據庫複製到託管服務器數據庫。本地數據庫中的大部分數據都被複制到活動數據庫中,儘管進行了優化以減少需要發送的實際數據量。將數據從本地數據庫複製到遠程數據庫
將數據從一個數據庫發送到另一個數據庫的最佳方式是什麼?目前我可以看到一些可能的選擇,但他們都沒有脫穎而出成爲主要候選人。
- 複製,雖然這並不理想,但我們不能指望它在託管環境中使用的SQL版本中受支持。
- 鏈接服務器,將數據複製直接 - 一個緩慢的,有點不安全的方法
- Web服務來傳送數據
- 導出我們需要爲XML,並轉移到批量要導入的服務器數據。
複製的數據進入表的副本,沒有標識字段,因此可以插入/更新數據,而不會在此方面發生任何違規。這種數據傳輸不一定要在數據庫級完成,它可以通過.net或其他工具完成。
更多信息
更新的頻率將在記錄的更新頻率完全改變。但基本思想是,如果記錄被更改,則用戶可以將其發佈到實時數據庫。或者,我們將記錄這些更改並將它們以可配置的頻率批量發送。
我們正在討論的記錄數量在覈心表(產品目錄)的核心表(產品目錄)中目前大約爲4000行,但這完全取決於我們部署的客戶端,因爲每個客戶端都有自己的產品目錄,範圍從100到1000的產品。爲了澄清,每個客戶端都在單獨的本地/託管數據庫組合中,它們不會合併成一個系統。
除了個別發佈項目外,我們還需要根據需要完成數據的完全重新同步。
系統的另一方面是從本地服務器複製的一些數據存儲在輔助數據庫中,所以我們有效地將來自兩個數據庫的數據合併到一個活動數據庫中。
剛開始時,您可以通過在啓動時發出「SET IDENTITY INSERT ON」命令來保留標識字段並將其插入到其他數據庫中。請記住在完成後關閉它。 – tomfanning 2011-06-30 21:53:37