我有一个客户端,它希望两个站点有能力同步数据库,这样站点A的信息就可以与站点B同步,这样两个站点就可以看到相同的数据。
我甚至不确定所需的基础设施。是否需要虚拟专用网络来连接两个数据库,或者是否需要基于互联网的数据库工作,即站点A到InternetDatabase,站点B到InternetDatabase。每个站点定期将数据复制到该站点,然后InternetDatabase对其进行同步,然后这些站点可以下载数据。
我的另一个想法是Dropbox之类的东西。如果站点A和站点B使用Dropbox帐户来同步ADT文件等,那么每个站点的数据库是否可以与这些ADT文件同步?
谢谢
发布于 2011-01-16 01:56:05
如果这两个网站更新的是完全不同的表格,那么像Dropbox这样的东西可能可以解决这个问题。Dropbox不同步/合并文件内容。这意味着如果站点A和站点B都更新了某个文件,那么您将负责编写代码来合并更改。
Advantage数据库服务器本身就支持replication built in,因此这可能是最简单的解决方案。Advantage复制是在逐条记录的基础上执行的,并且是异步处理的。如果无法访问目标数据库,则将更新存储在队列中并定期处理。如果两个站点之间的连接经常打开/可用,则源更新和复制更新之间的延迟通常很小,但显然取决于网络带宽和延迟。
您可以使用VPN进行两个站点之间的连接,但这不是必需的。如果您不使用某种类型的VPN,那么您应该确保两个站点之间的通信是加密的(这是设置订阅时的一个选项)。
编辑进行通信,你所需要的就是“正常”的网络连接。主要问题是如何处理防火墙和NAT等问题。有了Advantage,您可以定义它使用的端口。如果使用TCP/IP连接,则需要确保配置的端口允许到ads.exe进程的入站连接。您也可以使用UDP,但如果您使用的是防火墙,那么使用TCP可能会更简单。
您提出的关于重复键的问题是一个很好的问题。如果两个站点添加具有相同主键的记录,或者同时更新相同的记录,则会导致冲突。有一个选项可以简单地忽略冲突,在这种情况下,最后一次更新获胜。更实际的情况是,您可能希望编写一个ON CONFLICT trigger来处理冲突。
https://stackoverflow.com/questions/4698943
复制相似问题