2011-05-16 24 views
2

データベースでmysqldumpを起動し、新しいデータで新しいテーブルを作成した場合、このテーブルはダンプされますか?ここで並行処理の動作は何ですか?mysqldump同時実行

答えて

1

まあ、それはMysql Manualから、確認されていません。

--single-トランザクション

このオプションは ダンプデータの前に、サーバーへのSTART TRANSACTION SQL文を送信します。 InnoDB やBDBなどのトランザクションテーブルの場合は、 のトランザクションテーブルでのみ役に立ちます。これは、 のアプリケーションをブロックすることなく、 データベースの整合状態を にBEGINが発行された時点でダンプするためです。

このオプションを使用する場合、 InnoDBテーブル のみが一貫性のある状態でダンプされることに注意してください。 の例では、このオプションを使用している間に任意のMyISAMまたはMEMORYテーブル がダンプされても、 は状態を変えます。

--single-トランザクション・ダンプが有効なダンプ ファイル(正しいテーブルの内容と バイナリログの座標)を確保するために、他の 接続は次の のステートメントを使用してはならない、プロセスで ですが:ALTER TABLEの、CREATE TABLE、 ドロッピングテーブル、名前テーブル、TRUNCATE テーブル。読み取り一貫性は、これらの文から孤立しない ので、 間違った内容 を得るか、失敗するテーブルに 内容を取得するために のmysqldumpによって実行されるSELECTを引き起こす可能性がダンプされるテーブルの上にそれらの を使用しています。 LOCK TABLESのは 暗黙的にコミットする 保留中のトランザクションが発生するため

--single-transactionオプションと --lock-tablesオプションは相互に排他的である 。

このオプションは、MySQL ではサポートされていません。結果は の の結果、 エンジンは READ_COMMITTEDトランザクションアイソレーション レベルのみをサポートしているため、結果は一致することが保証されません。代わりに、常にNDB バックアップと復元を使用する必要があります。

大きなテーブルをダンプするには、 --single-transaction オプションを--quickと組み合わせる必要があります。あなたがバックアップしたい場合は

/ライブDBを移動し、あなたが考慮しなければならないMySQL replication