2010-03-18 25 views
4

我的應用程序要求使用java在sybase和db2之間歸檔數據庫表,並且反之亦然,並且在(db2到db2和sybase到sybase)內使用java。使用Java對數據庫表進行存檔

我想了解圍繞性能,實現,易用性和可伸縮性的最佳策略。

這是我的當前過程 - 以可接受的參數(從Java)

  • 源和目標表XML中被定義。 [實際的查詢被放置在xml中,因爲有時候從java接受參數(例如,對於where子句條件)]
  • 應用程序讀取源和目標配置並按順序執行它們。
  • 如果source只是從特定表中刪除數據或源只是調用存儲過程,則destination有時是可選的。
  • 源和目的地之間的數據集是非常大(百萬)

從我的頭頂上,它看起來像我可以定義多個源和目標組合之間的依賴關係,並讓它們在平行於多個胎面執行。但是這會提高任何性能(我希望它會)?

是否有任何開源框架使用Java進行數據歸檔?在實現方面的任何其他想法將是非常有用的。

謝謝

+0

「歸檔」是什麼意思?你想要時間點快照還是正在進行復制? – TREE 2010-03-29 15:18:39

回答

7

Java持久性最強大的開源框架是Hibernate。您可以從現有數據庫反向工程Java模型(請參閱Hibernate工具),並使用Session.replicate()執行復制。您可以通過使用無狀態會話和二級緩存(如果適用)來優化性能。文檔是here

1

看一些數據庫複製工具(我們使用Shadowbase)。他們可能有Java API。

此外,檢查出這個IBM whitepaper

[IBM]提供使用JDBC和 的SyncML的標準來實現通用 數據庫數據複製解決方案。

1

Pentaho數據集成有強大的支持在數據庫之間或從數據庫中複製數據。另外,它是開源的,允許你用Java編寫插件。

Migrate from Oracle to MySQL

1

你需要做的最重要的事情是要禁用JDBC自動提交,因爲你將在數據庫表中插入後以其他方式作出。那會毀掉表演。

但是你基本上必須找出你的同步方案,這樣你才能確定哪些記錄需要複製,然後才能決定如何實際執行它。

相關問題