2017-01-16 10 views
0

誰かが説明できる方法mysqldump--single-transactionは実際にInnoDBのようなトランザクションテーブルで動作しますか?私は公式documentationを読んだが、まだ接着剤を持っていない。 --lock-tablesはグローバルロックの代わりにテーブルロックを実行しますか?また、mysqldumpは--lock-tablesを含むデフォルトのオプションとして--optを実行しますが、上のドキュメンテーションのリンクで説明されているように、それらは互いに--single-transactionで排他的です。 --single-transactionをシングルで使用する場合、--skip-optを使用する必要がありますmysqldumpコマンド?Mysqldump - 単一トランザクションオプション

私は〜700GbのサイズのInnoDBテーブルをダンプする必要があります。これを実現するには正しいコマンドが必要です。現在、以下の1つを使用しています。

mysqldump -B my_db --quick --single-transaction --max_allowed_packet=512M --compress --order-by-primary 

ありがとうございます。

+0

なぜ出力ファイルを調べて、それが何であるかを確認してください。 – Barmar

+0

ダンプ中にテーブルにアクセスしますか?書き込み? –

+0

代わりに、PerconaのXtradbdumpを参照してください。 –

答えて

1

--single-transactionは、「ダンプ中にInnoDBテーブルに発生する変更はダンプに含まれません」と述べています。したがって、ダンプは、ダンプの所要時間にかかわらず、ダンプが開始された瞬間のデータベースのスナップショットであるになります。

ロックがどのようにやりとりするかによって、テーブルが遅くなり、書き込みが中断することさえあります。たとえば、ダンプ中にALTER TABLEまたはDROP TABLEを実行し、同じテーブル上の他のアクションを実行すると考えてください。

--lock-tablesはMyISAMテーブルに役立ちます。

--opt通常はお伝えします。私はそれが上記のオプションから独立していると思う。