【问题标题】:What JDBC tools do you use for synchronization of data sources?您使用哪些 JDBC 工具来同步数据源?
【发布时间】:2010-09-16 11:48:02
【问题描述】:

我希望了解人们使用哪些工具来在数据库之间同步数据。我正在寻找可以用作命令行工具的 JDBC 解决方案。

曾经有一个名为 Sync4J 的工具使用 SyncML 框架,但这似乎已经被搁置了。

【问题讨论】:

    标签: java database jdbc synchronization


    【解决方案1】:

    听说 Db4O 提供的 Data Replication Service 非常好。它允许您使用 Hibernate 回到 RDBMS - 我不认为它支持 JDBC (http://www.db4o.com/about/productinformation/drs/Default.aspx?AspxAutoDetectCookieSupport=1)

    有一个开源项目叫Daffodil,但我完全没有研究过。 (https://daffodilreplicator.dev.java.net/)

    我目前正在考虑使用的是 SymmetricDS (http://symmetricds.sourceforge.net/)

    还有其他的,他们每个人的做法都略有不同。有些使用触发器,有些使用轮询,有些使用拦截 JDBC 驱动程序。您需要确定您所受的技术限制,以确定您真正想要使用的技术限制。

    维基百科很好地概述了不同的技术 (http://en.wikipedia.org/wiki/Multi-master_replication),还提供了另一个替代 DBReplicator 的链接 (http://dbreplicator.org/)。

    【讨论】:

      【解决方案2】:

      如果您的代码库已经存在模型和 DAO 层,您可以创建自己的同步框架,这并不难。

      复制数据就这么简单:

      1. 从数据库 A 中读取一个对象
      2. 删除数据库元数据(uuid 等)
      3. 插入数据库 B

      同步对已同步的内容有一定程度的了解。您可以在运行时通过从 TableInA 和 TableInB 获取 uuid 列表并确定哪些条目是新的,或者您可以拥有需要同步的项目表(在 TableInA 中插入/更新时使用触发器填充) ,并从中运行。您的工具可以是 TimerTask,以便数据库以您希望的时间粒度保持同步。

      但是,可能有一些工具可以在没有任何这种实现的情况下完成这一切,而且每种实现都会根据业务需求而有所不同。此外,在数据库级别还会有复制工具。

      【讨论】:

      • 感谢您的周到回答。我目前有一个自己滚动的同步策略,我希望用更通用的方法来替换它。
      【解决方案3】:

      真正的同步需要一些我希望您的数据库架构拥有的数据(您可以阅读 SyncML 文档以了解它们是如何进行的)。 Sync4J 对您帮助不大,它确实是高级且面向 XML 的。如果您没有预见到任何冲突(这意味着:非常容易同步),您可以尝试使用像 Enhydra Octopus 这样的轻量级 ETL。

      【讨论】:

        【解决方案4】:

        我目前主要使用 Oracle,我遇到的功能最全的路线是 Red Gate 的 Data Compare:

        http://www.red-gate.com/products/oracle-development/data-compare-for-oracle/

        这个旧博客很好地总结了可用的解决方案路线:

        http://www.novell.com/coolsolutions/feature/17995.html

        我遇到的特定于 JDBC 的产品非常基础。如果您想走发布-订阅路线,Aidos 提到的解决方案似乎功能最完整:

        http://symmetricds.codehaus.org/

        希望这会有所帮助。

        【讨论】:

          猜你喜欢
          • 2010-09-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-09-21
          • 1970-01-01
          • 1970-01-01
          • 2010-10-23
          相关资源
          最近更新 更多