微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

两个数据库之间的数据同步 - 确保应用程序的准确性

如何解决两个数据库之间的数据同步 - 确保应用程序的准确性

我们正在构建一个基于 Windows 的自定义应用程序,该应用程序负责从我们每个客户内部部署数据库的关键表中提取数据,并将数据上传到我们的云数据库以在我们的 Web 应用程序中使用。

这实质上是每小时为每个用户“同步”本地数据集与我们的云数据集。这是一种单向同步 - 不会在云中进行任何更改。

源和目标都是不同类型的 sql 数据库。我们也对源的访问权限有限,以通过对某些存储过程的只读访问来提取我们需要的特定信息。这也是一个“多对一”场景,因为我们正在同步来自多个源数据库的数据,因此使用现有产品进行真正的“复制”似乎不是我们的选择。

不幸的是,数据集不包含所有记录的唯一标识符,因此为了处理更新,我们无法对记录进行比较。我们当前的流程是删除并重新导入最近 7 天的记录,以确保我们的数据是最新的。 (我们不关心数据更改 > 7 天)。我们先删除现有记录,然后重新上传数据 - 这个过程最多需要 5 分钟。

根据我们的 Web 应用程序的用户加载特定页面的时间,他们可能会看到任何/部分/所有数据,具体取决于此删除/重新导入过程的状态。

我们想知道如何改进这一点 - 并提出了一些想法:

  • 拥有“主动”和“被动”数据集。我们的 Web 应用程序将使用“主动”数据集,而同步过程会添加最新数据的第二个“被动”副本。同步完成后,我们执行交换并使“被动”副本成为“主动”副本。这应该会将我们关注的“5 分钟”窗口大大减少到几秒钟。

  • 用户显示同步正在进行通知,他们需要稍后检查(这不是最佳选择,因为同步过程可能需要长达 5 分钟 - 因此这会导致用户体验不佳)。

假设我们无法将唯一标识符添加到源内部部署数据库中的所有记录中 - 关于我们如何处理此问题,是否有任何其他建议可以为我们的用户提供良好的体验?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。