6

最近我的客户问我是否可以远程使用他们的应用程序,与本地网络和公司服务器断开连接。

一种解决方案是将数据库放在云中,但与数据库的连接以及云和互联网连接必须始终可用。并非总是如此。

所以我的问题是 - 是否有任何数据库同步系统或同步库,以便我可以与本地数据库断开连接,当我连接时同步我所做的更改并接收其他人所做的更改?

更新:

该应用程序在 Windows (7/xp) 下(暂时)

它在德尔福 2007 win32 中

所有客户端都需要具有读/写访问权限

所有客户端都有互联网连接,但并不总是开启

安全性并不重要,但同步服务应该加密通信

当存在公司网络时,系统应同步并使用服务器数据库,而不是本地数据库。

4

5 回答 5

1

Java 世界中有一些可用的产品(SymmetricDS lgpl 许可证)——除了实际上是一个工作系统之外,它还记录了它是如何实现同步的。连接到任何支持 jdbc 的数据库。. 有一个专业版,但用户指南(可下载的 pdf)为您提供了 db 架构以及推拉同步的规则。如果您想构建自己的,这很有用。

顺便说一句,有一个数据复制所以标签会有所帮助。

于 2013-07-12T00:58:53.060 回答
1

我相信RemObjects DataAbstract通过使用他们所谓的Briefcases允许离线模式和同步。还涵盖了您的所有其他要求(安全性、加密连接等)。

这不是一个简单的替换,思考,并且可能需要对您的应用程序进行广泛的重写/重构。有很多好处,想;可以/应该在服务器上执行业务规则(真正的安全性)、可编写脚本的业务规则、多平台架构等。

于 2012-05-28T14:28:24.040 回答
1

在考虑这样的解决方案时,您会遇到很多问题。首先,有很多可能的解决方案,例如:

  • 在数据库中使用数据库复制来模拟每次更新(如“热”备份)
  • 构建应用程序以定期(每晚)复制数据库
  • 使用第三方工具(我想这就是你要问的)

使用复制服务,连接不必总是处于打开状态。当连接不可用时记录对数据库的更改,然后在可以发送时应用它们。

但是,当您离开公司网络时,还有很多其他问题。数据和访问权限的安全性如何?您是否有其他选择,例如更容易从网络中访问数据库?用户只需要对数据库的读取权限还是读写权限?是否需要同时访问两个版本。两者会同时更新吗?

您可能还有其他比将数据库迁移到云端更安全的选项。

于 2012-05-27T14:43:25.083 回答
0

一种免费的可能性是 Microsoft Sync Framework:http: //msdn.microsoft.com/en-us/sync/bb736753.aspx

您可能会使用它,但您需要提供有关您的应用程序和操作环境的更多详细信息才能确定。

于 2012-05-27T10:27:17.423 回答
0

是否可以共享 .mdb 之类的数据库并正常工作?我尝试但有时数据库从 DB 更改为 DB1 的文件我使用 delphi Xe4 和 Google Drive。谢谢

于 2013-07-11T19:11:48.167 回答