2010-03-30 66 views
1

我正在通过提供Access DB来帮助企业管理各种类型的请求。由于他们是一家建筑公司,他们在建筑工地的一个“办公室”内有一台机器,另外还有3个位于主办公室的机器。现场机器没有互联网连接。跨远程访问数据库同步表

是否有任何(合理简单)的方式来异步同步异地和现场数据库?我意识到这些表可以合并,但每个表都有一个必须在实例之间同步的自动增量字段(即当合并两个表时,自动增量应该根据记录的组合重新分配)。

干杯提前,

保罗

回答

0

为自动编号PK场使用ReplicationID(GUID),而不是一个长期使数字将横跨数据库的所有副本唯一的,即使他们是断开。

Access有很多复制选项。这里有一篇文章让你开始。
Understanding Access Replication

+0

呃,Access没有处理好GUID(http://trigeminal.com/usenet/usenet011.asp?1033),虽然没有什么是完全不可逾越的。此外,在同一篇文章中推荐ReplicationID和复制也会遇到问题,因为使用ReplicationID作为PK会破坏内置的冲突解决程序。 – 2010-04-02 16:47:29

1

Jet复制是一个答案,但并不容易,作为一个远程位置,你必须使用间接或Internet复制,这两者都是非常复杂的设置和需要定期保养,以保持可靠运行。也就是说,间接复制工作得很好(我从来没有使用因特网复制,因为IIS的硬连线依赖性,我认为这是不可接受的)。

有关Jet复制主题的一站式购物,请参阅Jet Replication Wiki

微软正在逐步停止支持Jet在Access中的复制(尽管我希望只要支持MDB文件而不需要转换就支持它),所以更好的解决方案可能是使用微软提供的工具以取代提供的Jet复制功能。当然,这将是Sharepoint。在A2007中,Sharepoint太不适合作为Jet复制的适当替代品,但从A2010和Sharepoint 2010开始,所有这些都发生了变化。

如果我有一个新客户来找我这个需求,即使我有多年的Jet复制经验,我推荐使用A2010和Sharepoint 2010作为问题的解决方案,并且会说等待。

这可能是因为客户端不希望为Sharepoint服务器启动,并且在那种情况下,托管的Sharepoint可用,它应该在5月份Office 2010发布后不久支持Sharepoing 2010。

当然,也可以手动编程同步,但在多主方案中这很复杂。但是,如果两个数据库中的记录不重叠(即在一个数据库中创建的记录不会在另一个数据库中更新),或者换个角度来看,它对于每个数据库来说都是大多数和只有应用程序的应用程序,但这不是一个问题。删除是一个更难的问题,但不是无法解决的。

+0

感谢您花时间回答。我将整理一份商业理由文档并提出托管SharePoint。他们一般都是微软采购业务,我认为SharePoint可能会解决他们还有的其他一些问题。 – codinghands 2010-04-06 13:42:08

+0

我不会在2010年之前推荐Sharepoint的任何版本,因为Sharepoint列表中缺少真正的数据完整性实施。 – 2010-04-07 20:48:46