2010-08-10 158 views
0

我目前在POS項目。用戶需要此應用程序可以在線和離線工作,這意味着他們需要本地數據庫。我決定在每個商店和總部之間使用SQL Server複製。每家商店都需要安裝SQL Server Express,並且總部已經安裝了SQL Server Enterprise Edition。複製將按計劃每30分鐘運行一次,並選擇「合併複製」,因爲數據可能在商店和總部都發生變化。什麼是POS應用程序的最佳解決方案?

當我在做POC時,我發現這個解決方案不能正常工作,有時候工作是錯誤的,我需要重新初始化它。這個解決方案也需要很長時間,這對用戶來說顯然是不可接受的。

我想知道,有沒有比我現在做的更好的解決方案?

更新1:系統的

約束是

  1. 交易幾乎都可以在 都店和總部產生。
  2. 有些交易需要以實時模式工作,也就是說,用戶將數據保存到他們的本地商店之後,數據也應該在總部進行更新,即 。 (如果他們當前在線)
  3. 即使他們的店鋪與總店數據庫斷開連接,用戶也可以工作。
  4. 我們對數據量的估計是每天最多2,000行。
  5. Windows 2003是總部服務器的操作系統,Windows XP是所有客戶端的操作系統。

更新2:

  1. 目前,他們即將15個客戶,但這一數字將在相當緩慢的速度增長。
  2. 每個複製數據的大小大約爲100到200行,我認爲它不會超過5 MB。
  3. 客戶端通過租賃線連接連接到服務器; 128 kbps。

我處於複製需要很長時間(大約55分鐘,而我們只有5分鐘左右)的情況,而且幾乎有時候我需要重新初始化作業以開始複製,如果我不要重新初始化作業,它根本無法複製。在我的POC中,我發現重新初始化後複製總是需要很長時間,時間量並不取決於數據量。順便說一下,重新初始化只是解決方案,我發現它適用於我的問題。

如上所述,我的結論是,複製可能不適合我的問題,我想可能有另一種更好的解決方案,能滿足我的需要在更新1:

+0

您沒有給出足夠的細節 - 您沒有告訴我們您對系統有任何限制,數據量,中央服務器和POS系統的功率和操作系統......我可以繼續... – Oded 2010-08-10 11:39:54

+0

@Oded我添加的信息,你的建議,請讓我知道,如果這還不夠。 – Anonymous 2010-08-10 15:50:19

+0

更多問題...有多少客戶?什麼大小的數據?連接時,客戶端和服務器之間有什麼樣的連接? – Oded 2010-08-10 19:58:58

回答

2

聽起來像是你可能需要推出自己的雙向複製引擎。東西花了這麼長時間的原因

部分原因是,在這樣一個狹窄的鏈接(128kbps的),兩個數據庫必須是一致的(所以需要檢查所有行)複製之前開始。如你所想,這可能(而且確實)需要很長時間。即使是5Mb也需要一分鐘左右的時間來轉移此鏈接。

編寫自己的引擎時,決定需要複製什麼(在項目發生更改時使用時間戳),找出衝突解決方案(如果兩個複製週期之間相同記錄在兩個位置發生更改,會發生什麼情況)等等。這並不容易。

0

我的建議是使用MS訪問並在一定的時間間隔後不斷更新數據到服務器。將更新的列添加到每個表。當添加或更新記錄時,設置更新的色彩。對於刪除,您需要有一個可以放置主鍵值和表名的分離表。同步獲取更新字段未設置並更新(修改或插入)到中央服務器的所有本地記錄。刪除使用本地刪除表的所有記錄,你就完成了!

我假設你的中央服務器只爲收集數據。

+0

「合併複製,因爲數據可能在商店和總部都發生變化。」 – JeffO 2010-08-10 13:10:19

0

我現在做你的描述使用什麼配置Web同步SQL Server合併複製。我有我的代理運行1分鐘的時間表,並取得了成功。

是你看到什麼樣的錯誤信息?

相關問題