1

それぞれが 1 つのサイトのデータを含む N 個のローカル データベースをセットアップする必要があるクライアントがあり、N 個すべてのデータベースの結合を含むマスター企業データベースを持っています。個々のサイト データベースの変更はマスター データベースに伝達される必要があり、マスター データベースの変更は適切な個々のサイト データベースに伝達される必要があります。

同時に最新の状態に保つ 2 つのデータベースを必要とするクライアントに MySQL レプリケーションを使用しています。それが双方向レプリケーションです。ここでまったく同じアプローチを試みた場合、マスター データベースと同等の N 個のローカル データベースがすべて作成されることになり、これは望ましくありません。個々のサイトが他のサイトからのデータを参照できないようにするだけでなく、そのデータをマスターから 1 回ではなく N 回送信することは、おそらく大きな無駄です。

MySQL でこの新しいスター パターンを実現するためのオプションは何ですか? 特定のテーブルのみを複製できることはわかっていますが、複製をレコードでフィルタリングする方法はありますか?

役立つツールや競合する RDBMS を調べた方がよいツールはありますか?

4

8 に答える 8

3

これにはSymmetricDSが適しています。これは、Web 対応で、データベースに依存しない、データ同期/複製ソフトウェアです。Web およびデータベース テクノロジを使用して、リレーショナル データベース間でテーブルをほぼリアルタイムで複製します。このソフトウェアは、多数のデータベースに対応できるように設計されており、低帯域幅の接続でも機能し、ネットワークの停止期間に耐えることができます。

これを使用して、1000 以上の MySQL 小売店データベースを Oracle 企業データベースに同期させました。

于 2010-01-27T02:22:37.583 に答える
2

私は以前にこれを行ったことがありますが、知る限りこれが最も簡単な方法です。Microsoft SQL Server マージ レプリケーションの使用と、行フィルタリングの使用を検討する必要があります。行フィルタリングは、個々のサイトの宛先を示す列を持つように設定されます。

たとえば、テーブルは次のようになります。

ID_列 | 列 2 | 行き先

列のデータは次のようになります。'データ' | 「サイト1」

次に、マージ レプリケーションの "サブスクライバー" サイト 1 を、列 "宛先" と値 "サイト 1" でフィルター処理するように設定します。

この記事はおそらく役立ちます:

マージ レプリケーション用のパブリッシュされたデータのフィルター処理 msdn には、"マージ レプリケーションのパフォーマンスの向上" という記事もあり、これも役立つ可能性があります。また、SQL Server マージ レプリケーションでパブリッシャーとサブスクライバーを設定する基本を学ぶ必要があります。

幸運を!

于 2009-11-19T21:14:16.720 に答える
1

一方向のレプリケーションが必要な場合は、センター オブ スターでレプリケートされたデータベースの複数のコピーとカスタムの「ブリッジ」アプリケーションを使用して、データをさらに最後のレプリケーションに移動します。

于 2009-11-22T03:07:23.147 に答える
1

オプションの--where句を使用してテーブルを同期できるmaatkit の mysql-table-sync を見る価値があるかもしれません。

于 2009-11-23T11:14:04.647 に答える
1

単なるランダムなポインタ: Oracle lite はこれをサポートしています。同様のタスクで一度評価しましたが、すべてのクライアントに何かをインストールする必要がありますが、これはオプションではありませんでした。大まかなアーキテクチャの概要は、ここで見つけることができます

于 2009-11-23T08:29:47.727 に答える
0

専門家の支援が必要なようですが、私はおそらくそうではありません。

このレプリケーションはどの程度「リアルタイム」である必要がありますか? ある種の ETL プロセス (またはプロセス) は、おそらくオプションです。MS SSIS と Oracle を社内で使用しています。SSIS は、ETL タイプの作業にはかなり適しているようです (しかし、私はその特定の石炭面には取り組んでいないので、はっきりとは言えません)。

データの揮発性はどの程度ですか? データは主に運用/トランザクションに関するものだと思いますか? どのような種類のデータ ボリュームについて話しているのですか?

中央マスターは、それが配置されているオフィスのローカル DB としても使用されていますか? それを変更したい場合は、本社を遠隔地のオフィスと同じように機能させます。そうすれば、すべてのオフィスを同じように扱うことができます。異なるサイトの扱いが異なると、問題や異常に遭遇することがよくあります。

于 2009-11-19T20:56:40.343 に答える
0

このために、直接データベース構造の外に出ることで、より良いサービスが提供されるように思えます。

詳細な回答はありませんが、これは私が行うことの高レベルです。

各データベースから過去の変更のリスト (妥当な時間枠) を選択し、「大きな」データベースのすべてのデータを統合する挿入ステートメントと削除ステートメントを作成してから、挿入ステートメントと削除ステートメントの小さなセットを分離します。特定のデータベースのそれぞれ。

次に、これらを実行します。

出入りするデータにオーバーラップがある場合、このセットアップで「マージ」の問題が発生する可能性があります。

時間枠が適切に構築されていないために、データが失われたり複製されたりするという問題もあります。

于 2009-11-19T21:27:48.847 に答える