4

これはシナリオです:

  1. データベースを備えたMySQLサーバーがあります。それをconsolideddbと呼びましょう。このデータベースは、さまざまなデータベースの複数のテーブルを統合したものです
  2. 元のデータベースを備えた別の MySQL サーバーがあります。これらのデータベースは運用データベースであり、毎日更新されます。
  3. この会社は、運用データベースの各テーブルの各更新/挿入/削除を、consolideddbの対応するテーブルにコピーしたいと考えています。

レプリケーションはそれを達成しますか? データベースからデータベースへのレプリケーションは行われますが、異なるデータベースに属するテーブルから 1 つのターゲット データベースへのレプリケーションは行われないことはわかっています。

私の説明が明確だったことを願っています。ありがとう。

編集:各データベース内のすべてのテーブルを単一のスレーブに再帰的にコピーしますか? それとも醜い解決策ですか?

4

7 に答える 7

12

いくつかのことを明確にするために、現在の mysql の慣行に従って名前を付けましょう。データベースはデータベースサーバーです。スキーマはデータベース インスタンスです。データベース サーバーは複数のスキーマを持つことができます。テーブルはスキーマ内に存在します。

レプリケーションは、マスター/運用サーバーで定義されているスキーマまたはテーブルを複製する場合に役立ちます。レプリケーションは、マスターで実行されるすべての sql ステートメントのバイナリ ログをスレーブに送信することによって機能します。スレーブは、それ自体で順次実行されるかのように忠実に実行します。

すべてのデータをレプリケートすることを選択することも、スキーマの一部またはテーブルの一部のみを選択することもできます。

異なるスキーマからテーブルを選択して、それらを 1 つのスキーマにレプリケートすることはできません。テーブルは特定のスキーマに属します。

ところで、重要なお知らせ。レプリケーション サーバーは、複数のマスターのスレーブになることはできません。連合テーブルを使用してこれを模倣することはできますが、データを統合サーバーにコピーすることはなく、異なるサーバーからのデータが 1 つのサーバー上にあるかのように表示するだけです。

レプリケーションの利点は、統合サーバーのデータが多かれ少なかれ常に更新されていることです。

于 2009-04-30T19:54:54.787 に答える
0

maatkitツールキットを確認することをお勧めします。これは無料でダウンロードでき、テーブルのアーカイブなどの最適化に特化したツールが多数あります。過去のプロジェクトで使用して、特定のデータを別のDBなどに複製しました。時間やその他のさまざまな要因に基づいて実行できます。

于 2009-04-29T14:15:48.420 に答える
0

さまざまなデータベースをさまざまなスレーブに複製する方法を確認してください。何らかの形で役立つかどうかを確認してください。

于 2009-04-27T12:21:23.937 に答える
0

MySQL Proxyでそれをやってのけることができるかもしれません

于 2009-04-28T05:23:41.343 に答える
0

私の知る限りでは、レプリケーション (MySQL 4+) を設定し、my.cnf ファイルでスレーブに特定のテーブルのみを処理させるか、マスターに特定のテーブルのみをログに記録させることができます。どちらの方法でも問題は解決します。

以下は、いくつかのテクニックのガイドです。

http://www.onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html

レプリケーションのセットアップに関する問題はほとんどありません。すべての問題は、特に再起動後などに、DB を同期しようとしたときに発生しました。

于 2009-04-30T13:23:50.500 に答える
0

MySQL のステートメントベースのレプリケーション (基本的なレプリケーション) は、マスターで実行されたのとまったく同じステートメントをスレーブで実行することによって機能します。これには、テーブルが含まれていたデータベースに関する情報が含まれます。

MySQL がデータベース間でレプリケーションステートメントを移動する組み込みの方法を提供しているとは思いません (つまり、「db1.table1 に挿入 ...」->「db2.table1 に挿入」)。その場でレプリケーション ログを手動で変更することで、それをだますことができるかもしれませんが、それはアウト オブ ザ ボッドの MySQL レプリケーションではありません。

于 2009-04-27T12:44:28.890 に答える