首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库同步方法

数据库同步方法
EN

Stack Overflow用户
提问于 2012-08-23 09:08:16
回答 1查看 1.5K关注 0票数 0

我目前被指派为我的公司开发同步应用程序。我们的数据库服务器上有SQL服务器,它将与客户端数据库同步。客户端数据库是未知的,它们可以是SQLite或MYSQL之类的。

这个同步应用程序所做的是,检测服务器和客户端数据库中发生的更改。保存这些更改并同步。如果服务器数据库发生更改,则将与客户端数据库同步,反之亦然。

我对此做了一些研究,并了解了许多解决办法。其中之一是使用。但我几乎找不到一个好的实现示例,用于与远程数据库进行同步。

然后,我看到了Server 2008上的变更数据捕获(CDC)。CDC通过触发器检测源表上的更改,并将这些更改放在一个名为sync_table的单独表中,然后使用该表进行同步。

因为我不能使用CDC功能,因为我没有足够的数据库权限在我的机器上,我已经开始开发我自己的解决方案,它的工作方式就像CDC一样。我为每个源表创建单独的sync_table,创建触发器来检测数据更改并将这些数据放入sync_table中。

不过,我建议多做一些研究,以选择最佳的执行方法。

我需要记住以下几点

  • 数据库可能/可能不在同一网络上。
  • 在服务器端,用户必须能够选择哪些表将参与同步进程。
  • 需要首先注册将与服务器数据库同步的设备。这意味着所有客户端设备都将由用户注册,然后才能开始同步。

如往常一样,如有任何帮助,将不胜感激:)

EN

回答 1

Stack Overflow用户

发布于 2012-09-04 20:37:54

有一个名为SymmetricDS的开源项目,有许多相同的目标。看看文档和数据模型,看看问题是如何解决的,也许你会得到一些想法。对于每个源表,没有单独的影子表,而是有一个sym_data表,其中所有数据都以逗号分隔的值格式捕获。其优点是可以在一个地方查找捕获的数据,并检索属于同一事务的更改。在成功传输数据之后,通常通过清除表来保持表的小。它使用web协议(HTTP)进行数据传输。其优点是利用现有的web服务器进行性能、管理和通过防火墙进行已知的过滤。在允许客户端同步之前,还使用了注册协议。服务器管理员为客户端ID“打开注册”,这允许客户机第一次连接。它支持许多不同的数据库,因此您将找到如何在这些系统上编写触发器和检索唯一事务It的示例。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12088313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档