使用Java归档数据库表

时间:2010-03-18 19:38:31

标签: java database archiving

我的应用程序需要在sybase和db2之间归档数据库表,反之亦然,并使用java在(db2到db2和sybase到sybase)之间归档数据库。

我试图在性能,实现,易用性和可扩展性方面理解最佳策略。

这是我目前的流程 -

  • 具有可接受参数(来自java)的源表和目标表在xml中定义。 [实际查询被放在xml中,因为有时参数是从java接受的(例如,对于where子句条件)]
  • 应用程序读取源和目标配置并按顺序执行它们。
  • 当li只是从特定表中删除数据或者源只是调用存储过程时,
  • 目标有时是可选的。
  • 源和目标之间的数据集非常大(以百万计)

从我的头脑中,我看起来可以定义多个源和目标组合之间的依赖关系,并让它们在多个步骤中并行执行。但是这会改善任何表现(我希望会如此)?

是否有使用java进行数据归档的开源框架?关于工具方面的任何其他想法都会非常有用。

由于

4 个答案:

答案 0 :(得分:8)

最强大的Java持久性开源框架是Hibernate。您可以从现有数据库中反向设计Java模型(请参阅Hibernate工具),并使用Session.replicate()执行复制。您可以通过使用无状态会话和适用的二级缓存来微调性能。文档为here

答案 1 :(得分:1)

查看一些数据库复制工具(我们使用Shadowbase)。他们可能有Java API。

另外,请查看此IBM whitepaper

  

[IBM]使用JDBC和提供解决方案   SyncML标准实现通用   数据库数据复制。

答案 2 :(得分:1)

Pentaho Data Integration强大支持在数据库之间复制数据。另外,它是开源的,允许你用Java编写插件。

Migrate from Oracle to MySQL

答案 3 :(得分:1)

您需要做的最重要的事情是在JDBC中禁用自动提交,就像在数据库表中的每次插入后提交一样。这破坏了表现。

但是你基本上必须弄清楚你的同步方案,这样你才能确定需要复制哪些记录,然后才能决定如何实际执行。