データベース間でデータを同期するために人々がどのツールを使用しているかを知りたいと思っています。コマンドライン ツールとして使用できる JDBC ソリューションを探しています。
以前は SyncML フレームワークを使用した Sync4J というツールがありましたが、これは廃れたようです。
データベース間でデータを同期するために人々がどのツールを使用しているかを知りたいと思っています。コマンドライン ツールとして使用できる JDBC ソリューションを探しています。
以前は SyncML フレームワークを使用した Sync4J というツールがありましたが、これは廃れたようです。
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/ ) へのリンクも提供します。
コードベース用にモデルと DAO レイヤーが既に存在する場合は、独自の同期フレームワークを作成するだけで済みます。難しくはありません。
データのコピーは次のように簡単です。
同期には、すでに同期されているものについてある程度の知識があります。実行時に TableInA と TableInB から uuid のリストを取得し、どのエントリが新しいかを判断するか、同期する必要があるアイテムのテーブルを作成することができます (TableInA の挿入/更新時にトリガーを入力します)。 、そしてそこから実行します。ツールを TimerTask にすることができるため、データベースは必要な時間の粒度で同期されます。
ただし、このような実装の手間がかからずにすべてを実行できるツールが存在する可能性があり、いずれにせよ、各実装はビジネス ニーズに基づいて異なります。さらに、データベース レベルにはレプリケーション ツールがあります。
真の同期には、データベース スキーマにあると思われるデータが必要です (SyncML のドキュメントを読んで、同期がどのように進行するかを確認してください)。Sync4J はあまり役に立ちません。本当に高レベルで XML 指向です。競合が予想されない場合 (つまり、非常に簡単な同期)、Enhydra Octopusのような軽量の ETL を試すことができます。
私は現在主に 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/
お役に立てれば。