既存のマスタ
データベースでデータのスナップショットを作成する方法の一つに、mysqldump
ツールを使うことがあります。データのダンプが完了したら、レプリケーション
プロセスを開始する前に、そのデータをスレーブにインポートします。
mysqldump
を使用してデータのスナップショットを取得する方法
データを更新するクエリの実行を防ぐために、サーバのテーブルをまだロックしていない場合
コマンド ライン
クライアントを開始し、すべてのデータをフラッシュし、FLUSH
TABLES WITH READ LOCK
ステートメントを実行して書き込みステートメントをブロックする。
mysql> FLUSH TABLES WITH READ LOCK;
注意:SHOW MASTER STATUS
を使用し、スレーブをスタートアップするときに使うバイナリ
ログの詳細を記録してください。このときのスナップショットとバイナリ
ログの位置は一致する必要があります。詳細は、項5.1.1.4. 「マスタ レプリケーション情報の取得」
を参照。
別のセッションでは、mysqldump
を使用して、データベースすべて、または複製する分、あるいは個別に特定のデータベースを選択して、ダンプを作成する。
shell> mysqldump --all-databases --lock-all-tables >dbdump.db
ベア
ダンプの別方法としては、--master-data
オプションを使用し、自動的に
スレーブでのレプリケーション
プロセスに必要な CHANGE MASTER
ステートメントを付加する。
shell> mysqldump --all-databases --master-data >dbdump.db
ダンプを含むデータベースを選択する場合は、レプリケーション プロセスには不要なスレーブのデータベースにフィルタをかける必要があります。
データをインポートするときに、スレーブへ遠隔的に接続する場合は、ダンプ ファイルをスレーブにコピーするか、またはマスタからのファイルを使用します。