您使用哪些 JDBC 工具同步数据源?
我希望了解人们使用什么工具在数据库之间同步数据。我正在寻找一个可以用作命令行工具的JDBC解决方案。
曾经有一个名为Sync4J的工具使用SyncML框架,但这似乎已经被搁置一旁。
我希望了解人们使用什么工具在数据库之间同步数据。我正在寻找一个可以用作命令行工具的JDBC解决方案。
曾经有一个名为Sync4J的工具使用SyncML框架,但这似乎已经被搁置一旁。
我听说 Db4O 提供的数据复制服务非常好。它允许您使用Hibernate回到RDBMS - 我认为它不支持JDBC tho(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/)的链接。
如果您的代码库已经存在模型和DAO层,则可以创建自己的同步框架,这并不难。
复制数据非常简单:
同步对已经同步的内容有一定程度的了解。您可以在运行时通过从 TableInA 和 TableInB 获取 uuid 列表并计算出哪些条目是新的来执行此操作,也可以拥有一个需要同步的项目表(在 TableInA 中插入/更新时填充触发器),然后从中运行。您的工具可以是 TimerTask,以便数据库在所需的时间粒度上保持同步。
但是,可能有一些工具可以在没有任何实现障碍的情况下完成所有操作,并且每个实现都会根据业务需求而有所不同。此外,在数据库级别,还将有复制工具。