寻找同步 .mdb 访问数据库的替代方案(创可贴)

Posted

技术标签:

【中文标题】寻找同步 .mdb 访问数据库的替代方案(创可贴)【英文标题】:Looking for alternative (band-aid) for Synch .mdb Access Database 【发布时间】:2012-03-13 13:48:03 【问题描述】:

有人要求我快速解决这个问题。我正在协助的小组有一个 .MDB 数据库,其中的异地工作人员一直没有互联网。因此,早在很久以前,该团队就实现了一个允许同步的 Access DB。

随着团队的壮大,他们开始遇到以下问题:

    远程同步 - 当用户尝试从工作站点同步时,数据库通常会由于无线信号丢失、程序超时或 Inspector 由于时间(即 30 或更多分钟) 多个同步器 - 我们无法一次同步多个(目前在 3 个不同的地区有 34 个用户)。如果有人正在同步,而另一个人同时尝试同步,则第二个用户最终会收到一条错误消息。他们将不得不关闭他们的数据库并在稍后尝试同步。 不完整的同步 - 有时当工作人员同步他/她的数据库时,并非所有行项目都会复制到主文件,这可能会在审查期间造成混乱。

是否有任何解决方法或项目可以解决这些问题? 我的资源和时间很少,所以涉及新服务器的任何事情都可能无法正常工作。

谢谢

【问题讨论】:

【参考方案1】:

听起来好像您主要是从不同的现场操作员那里添加新数据,而不是每个人都更新现有数据,如果是这种情况,那很好,您可以尝试以下方法:

确保所有表都有主键的“复制 ID”,因为这将确保没有两个操作员创建冲突的记录。

然后应该修改同步过程,将所述表/表的快照拍摄到操作员机器上的 .txt 文件中,然后将该文件传输回源机器。

然后在一天结束时或更频繁的情况下,应该设置主副本以从它收到的所有文本文件中导入新数据,因为不会有冲突的主键,你应该没问题,只是请记住只插入那些主键尚未在表中的那些。

希望一切都有意义:)

【讨论】:

似乎有道理。因此,不要“同步”,而是让离线用户获得一个 txt 导出并让互联网用户拿起它 @ds_12_will 更多所有远程用户(在线或离线)导出到文本文件,然后可以将其传输回办公室或任何它所在的主要主副本,并且可以导入所有数据例如,在一天结束时。所有用户都需要查看彼此的数据还是只添加他们正在做的新东西? 只需添加他们正在做的事情。他们可能会更新前一天的记录。我认为您提出的解决方案效果最好,我只需要创建语法来检查记录是新的还是使用过的。如果更新多个表,这会怎样?使 text.txt 文件具有表名? @ds_12_will 您可以合并表名以帮助更新哪些表,我还将引入用户名和当前日期/时间以确保您的所有文本文件都有唯一的名称。您不需要创建语法来检查记录,就好像您使用我提到的“复制 ID”方法一样,所有记录都将是唯一的,即使来自不同的用户。 是否有设置复制 ID 的细节?以前没听说过

以上是关于寻找同步 .mdb 访问数据库的替代方案(创可贴)的主要内容,如果未能解决你的问题,请参考以下文章

传统文件同步方式存在哪些问题?该如何寻找替代同步软件?

数据同步等核心数据的 iCloud 替代方案

如何从 python 访问 .mdb 文件?

用于浏览 MDB 数据库的 .NET 工具

kafka 是不是适合小型微服务环境,或者我应该寻找轻量级的替代方案

将批量 MS 访问 MDB 文件数据迁移到 oracle 11G