5

それがstackoverflowに正確に適合するかどうかはわかりませんが、ツールではなくコードを探しているので、適合すると思います。

さまざまなデータベース システムを複製/同期する方法を探しています。この場合は、mysql と mongodb です。私たちは異なる目的のために両方を実行しています。mysql データベースから始めて、後で特別なアプリケーション用に mongodb を追加しました。両方のデータベースに保持したいデータがあり、mysql にそれぞれ制約を、mongodb に dbref を保持したいと考えています。例: mysql でユーザー レコードが必要ですが、それぞれのオブジェクトのテーブル間の参照のために mongodb でも必要です。現時点では、mysql データをダンプして mongodb にインポートする cron ジョブがあります。ただし、それは非常にうまく機能しますが、それは私たちが望んでいる解決策ではありません。

今のところ、一方向のレプリケーションで十分だと思います -- mysql->mongodb、重要な部分は、mysql マスター -> スレーブ レプリケーションが機能するのと同じように、レプリケーションが「リアルタイム」で機能することです。

この問題の解決策や、これを達成する方法のアイデアはすでにありますか?

ありがとう!

4

4 に答える 4

3

SymmetricDSは、オープンソース、Javaベース、Web対応、データベースに依存しない、データ同期/レプリケーションソフトウェアであり、いくつかの調整を加えるだけでうまくいく可能性があります。これには、MongodbDataLoaderを実装するために使用できるIDataLoaderFilterと呼ばれる拡張ポイントがあります。

これは、一方向のデータベースレプリケーションに役立ちます。MongoDb->リレーショナルデータベースから同期するのは少し難しいかもしれませんが、SymmetricDSチームは解決策を見つけるのに非常に役立ちます。

于 2010-01-27T02:10:58.717 に答える
2

あなたが探しているのはEAI(エンタープライズアプリケーション統合)と呼ばれています。周りにはたくさんの商用ツールがありますが、提供されたリンクの下に、いくつかのOSSソリューションもあります。EAIの基本は、データソースとデータシンクがあることです。EAIフレームワークは、2つの間にカスタムポンプを構築するためのツールを提供します。

DBトリガーを使用して同期を開始するか、アプリケーションでトリガー信号を送信することをお勧めします。同期は任意に複雑になる可能性があるため、鍵穴の解決策はないことに注意してください(たとえば、すべての行が確実にコピーされるようにするにはどうすればよいですか?)。

于 2010-01-08T08:20:01.497 に答える
0

私が見る限り、各 DBMS 用のドライバーを備えたある種の「制御プログラム」を開発し、それをデーモンとして実行する必要があります。デーモンには、DB の同期を維持するためのトリガーまたは非常に短い再チェック間隔が必要です。

于 2010-01-08T07:53:07.280 に答える
0

技術的には、MySQL サーバーのバイナリ ログを解析し、関連する SQL クエリを複製するプロセスを設定できます。スレーブとして別のデータベースでそのようなことをしたことはありませんが、試してみる価値はありますか?

于 2010-01-08T08:07:47.340 に答える