MySQL レプリケーションを使用する場合、MySQL Enterprise Backup により、マスターをバックアップし、そのバックアップを新しいスレーブサーバーにリストアすることによって、マスターを停止することなく、スレーブデータベースをセットアップできます。
バックアップを取得して、それをスレーブサーバーに転送し、
apply-log
オプションを付けて mysqlbackup を使用してそれを準備し、新しいスレーブの適切なディレクトリに、リストアされたバックアップとログファイルを配置します。新しいスレーブの
my.cnf
ファイルを編集し、「mysqld」
セクションの下に、skip-slave-start
およびevent_scheduler=off
を挿入します。-
新しいスレーブ mysqld (バージョン >= 5.1) を起動します。これはバックアップが認識する最新の MySQL バイナリログの位置を出力します。
… InnoDB: Last MySQL binlog file position 0 128760128, file name ./hundin-bin.006 …
InnoDB は、トランザクションのコミット時に、そのテーブルスペースにバイナリログの位置情報のみを格納することに注意してください。現在のバイナリロギングの位置を InnoDB に認識させるには、バイナリロギングが有効になっている間に、少なくとも 1 つのトランザクションを実行する必要があります。
-
スレーブで
CHANGE MASTER
SQL コマンドを使用して、それを正しく初期化します。例:CHANGE MASTER TO MASTER_LOG_FILE='hundin-bin.006', MASTER_LOG_POS=128760128;
-
マスターからコピーされたイベントのステータスを
SLAVESIDE_DISABLED
に設定します。例:mysql> UPDATE mysql.event SET status = 'SLAVESIDE_DISABLED';
ステップ 2 でスレーブの
my.cnf
ファイルに追加した行skip-slave-start
およびevent_scheduler=off
エントリを削除します。スレーブサーバーを再起動します。レプリケーションが開始します。