2010-08-10 139 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分钟的时间表,并取得了成功。

是你看到什么样的错误信息?

相关问题