【问题标题】:Synchronising tables across remote Access databases跨远程 Access 数据库同步表
【发布时间】:2011-02-02 10:51:48
【问题描述】:

我通过提供 Access DB 来管理各种类型的请求来帮助企业。因为他们是一家建筑公司,所以他们在建筑工地的“办公室”里有一台机器,另外还有 3 台在他们的主要办公室。现场机器没有互联网连接。

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

提前干杯,

保罗

【问题讨论】:

    标签: database ms-access merge auto-increment


    【解决方案1】:

    Jet Replication 是一个答案,但不是一个简单的答案,因为对于远程位置,您必须使用间接复制或 Internet 复制,这两者的设置都非常复杂,并且需要定期维护以保持可靠运行。也就是说,间接复制效果很好(我从未使用过 Internet 复制,因为对 IIS 的硬连线依赖,我认为这是不可接受的)。

    有关 Jet Replication 的一站式购物服务,请参阅Jet Replication Wiki

    Microsoft 正在逐步淘汰 Access 中对 Jet 复制的支持(尽管我希望只要 MDB 文件不受转换即可得到支持),因此更好的解决方案可能是使用 Microsoft 提供的工具替换 Jet 复制提供的功能的地方。当然,这将是 Sharepoint。在 A2007 中,Sharepoint 还不足以替代 Jet 复制,但从 A2010 和 Sharepoint 2010 开始,这一切都发生了变化。

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

    可能是客户端不想使用 Sharepoint 服务器,在这种情况下,有可用的托管 Sharepoint,它应该会在 5 月发布 Office 2010 后不久支持 Sharepoing 2010。

    当然,也可以手动编程同步,但在多主机方案中这相当复杂。但是,如果两个数据库中的记录不重叠(即,在一个数据库中创建的记录没有在另一个数据库中更新,或者换句话说,它主要是每个数据库的仅添加应用程序),这不是一个糟糕的问题。删除是一个更难的问题,但并非无法解决。

    【讨论】:

    • 感谢您抽出宝贵时间回答。我将整理一份业务论证文档并建议托管 SharePoint。他们通常是 Microsoft 采购业务,我认为 SharePoint 可以解决他们也遇到的许多其他问题。
    • 我不会推荐 2010 年之前的任何版本的 Sharepoint,因为在 Sharepoint 列表中缺乏真正的数据完整性强制执行。
    【解决方案2】:

    对于您的自动编号 PK 字段,请使用 ReplicationID (GUID) 而不是长整数,以便编号在数据库的所有副本中都是唯一的,即使它们已断开连接。

    使用 Access 进行复制有很多选项。这是一篇帮助您入门的文章。
    Understanding Access Replication

    【讨论】:

    • 呃,Access 不能很好地处理 GUID (trigeminal.com/usenet/usenet011.asp?1033),尽管没有什么是完全无法克服的。此外,在同一篇文章中推荐 ReplicationID 和复制也必然会出现问题,因为使用 ReplicationID 作为 PK 会破坏内置的冲突解决程序。
    猜你喜欢
    • 2017-09-02
    • 2013-02-19
    • 2019-02-08
    • 2018-04-02
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    相关资源
    最近更新 更多