Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  ...  /  mysqldump を使用したデータスナップショットの作成

17.1.1.5 mysqldump を使用したデータスナップショットの作成

既存のマスターデータベースでデータのスナップショットを作成する 1 つの方法は、mysqldump ツールを使用して、複製するすべてのデータベースのダンプを作成することです。データダンプが完了したら、レプリケーションプロセスを開始する前に、このデータをスレーブにインポートします。

ここで示した例では、dbdump.db という名前のファイルにすべてのデータベースをダンプし、レプリケーションプロセスを開始するためにスレーブ側で必要な CHANGE MASTER TO ステートメントを自動的に加える --master-data オプションを追加しています。

shell> mysqldump --all-databases --master-data > dbdump.db

--master-data を使用しない場合は、個々のセッションですべてのテーブルを手動でロックしてから (FLUSH TABLES WITH READ LOCK を使用)、mysqldump を実行し、2 番目のセッションから終了するか UNLOCK TABLES を実行するかしてロックを解除する必要があります。また、SHOW MASTER STATUS を使用してスナップショットに一致するバイナリログ位置情報を取得し、これを使用してスレーブ起動時に対応する CHANGE MASTER TO ステートメントを発行する必要があります。

ダンプに含めるデータベースを選択するときに、各スレーブでレプリケーションプロセスに含めないデータベースを除外する必要があることを覚えておいてください。

データをインポートするには、ダンプファイルをスレーブにコピーするか、スレーブにリモートで接続したときにマスターからファイルにアクセスします。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
  Posted by David Forgac on September 2, 2010
@Gianluigi Yes but the point of the FLUSH TABLES WITH READ LOCK here is that you acquire it, get the master log coordinates, and then complete the dump. If the lock is not in place the database will likely be changed between reading the log coordinates and making the dump even just a couple seconds later. If you're just looking to make a database dump that may be fine but it won't work for setting up replication.
  Posted by Ruslan Kabalin on September 23, 2010
@David: But correct coordinates (those recorded after locking all tables) will be added to the dump file automatically if --master-data parameter is used, aren't they? And the corresponding CHANGE MASTER TO MASTER_LOG_* statements will be executed on the slave the time of dump importing. So, I do not see the point to lock tables and record coordinates separately since --master-data parameter already does it.
  Posted by Ilan Hazan on April 7, 2011
Restoring a dump table into the MySQL master server can lead to serious replication delay.
To overcome the replication delay, caused by restoring the dump table on the master, there is a need to widespread the massive inserts. This can be done by the MySQL SLEEP command.
See http://www.mysqldiary.com/as-restoring-a-dump-table-into-the-mysql-master-you-better-get-some-sleep/
  Posted by Ender Li on July 5, 2011
If get a "Access denied for user 'ODBC'@'localhost'" error message.

1.run "MySQLInstanceConfig.exe".
2.Select "Create An Anonymous Account" at "Please set the security options".
  Posted by Stephen Wylie on January 25, 2012
When using --master-data, as Sprout has pointed out, not all the CHANGE MASTER statements required are in the dumpfile.
His suggestion of editing the dumpfile will work, but not trying to do another CHANGE MASTER to set the host, user etc after importing the dump. That will only work if you put in the filename and log co-ordinates again, as I found to my cost.
It won't tell you what's wrong either!
Every execution of CHANGE MASTER blows off the co-ords, as it assumes you are changing to a new master.
I think you can set the user, etc before importing and it should work.
Sign Up Login You must be logged in to post a comment.