0

あるテーブルを他のサーバーに複製するために mysqldump を使用しています。プロセスを開始するたびに、mysqldump はすべてのデータをテーブルに挿入します。

たとえば、テーブルに 1 つのレコードがあり、このテーブルに主キーがないとします。

現在、オプションを使用--no-create-infoして、すべての挿入のみのデータをダンプしています。

1 回目の実行で 1 つのレコードが得られ
た 2 回目の実行で 2 つのレコードが得られた ...
など

私が必要としているのは、mysqldump で可能な場合、一種のマージ アクションです。

結果は

1 回目の実行で 1 つのレコード
が得られました 2 回目の実行で 1 つのレコードが得られました

新しく挿入されたレコードの後

3回目の実行では、2つのレコードが必要です

ありがとう。

4

1 に答える 1

0

このページhttp://shiplu.mokad.im/110/splitting-huge-mysql-dump-for-easy-restore/を見てください。単一のテーブルのダンプを分割するさまざまな方法が示されています。

私はまだこれを試す時間がなく、コマンドに「--no-create-info」を追加する必要があるかもしれません。そのページの方法のいずれかを使用する場合、最終的な解決策を知りたいです.

サーバーが 1 つのファイルで問題を抱えていたため、1,300 万レコードの大きなテーブルを 3 つのファイルに分割する時間がありました。以下は私のために働いた。

mysqldump --host=localhost --user=user --password=password --where "1 LIMIT 0, 5000000" db_name table_name > table_name_01.sql

mysqldump --host=localhost --user=user --password=password --where "1 LIMIT 5000000, 5000000" --no-create-info db_name table_name > table_name_02.sql

mysqldump --host=localhost --user=user --password=password --where "1 LIMIT 10000000, 5000000" --no-create-info db_name table_name > table_name_03.sql

于 2013-02-08T02:50:36.900 に答える