1

主なオフィスに mysql データベースがあり、イベントに参加して顧客データを収集する 4 つのオフサイト サーバーがあります。サーバーをホーム オフィスに戻すときは、既存のデータを上書きせずに、オフサイト データベースからプライマリ データベースにすべてのデータを送信する必要があります。これにより、リモート データベースをクリアして、次のイベントに新しいデータを送信できます。

mysqldump を調べたところ、常に以前のデータがすべて削除されます。これは非常に悪いことです。

誰かが私を正しい方向に向けるのを手伝ってくれるなら、それは大歓迎です。

注: イベント時はオフサイト サーバーにインターネット接続はなく、オフサイト サーバーはオフィスにいるときは LAN に接続されません。

最終的に、これを行う方法を見つけようとしているので、スクリプトに入れることができます。

4

2 に答える 2

0

コマンド ラインでドロップまたは置換/挿入に関連する mysqldump の動作を構成できます。

試す

mysqldump --help

また、 INSERT SELECTを使用することもできます

SELECT CONCAT (CSV を作成するため) およびLOAD DATAを使用して CSV ステートメントをインポートすることもできます。

于 2012-02-21T06:53:03.120 に答える
0

一時 DB からデータを読み取り、それをプライマリ DB に挿入する小さなプログラム (おそらく Java で記述) を使用して、この種の操作を行います。コピーされるものとコピーされないものを完全に制御できるからです。

これに mysqldump を使用する場合は、次のようにするとよいと思います。

  1. mysqldump を使用して、イベントにあったデータベースをファイルにダンプします
  2. プライマリ データベース インスタンスに一時 DB を作成します (つまり、構造的に同一で同じ mysql-instance にある primary_db と temporary_db があります)。
  3. ダンプを一時DBにロードします
  4. INSERT INTO ... SELECTを一時 DB からプライマリ DB に実行します。

    INSERT INTO primary_db.customer (name,address) SELECT name, address FROM temporary_db.customer

于 2012-02-21T06:40:35.743 に答える