If you use MySQL replication, MySQL Enterprise Backup allows you to set up a slave database without stopping the master, by backing up the master and restoring that backup on a new slave server.
Take the backup, transfer it to the slave server, use
mysqlbackup with the
apply-log option to prepare it, and put the
restored backup and the log files in the right directories for
the new slave.
my.cnf file of the new slave and
skip-slave-start under the
Start the new slave mysqld (version >= 5.1). It prints the latest MySQL binlog position the backup knows of.
… InnoDB: Last MySQL binlog file position 0 128760128, file name ./hundin-bin.006 …
Note that InnoDB only stores the binlog position information to its tablespace at a transaction commit. To make InnoDB aware of the current binlog position, you must run at least one transaction while binlogging is enabled.
CHANGE MASTER SQL command on the
slave to initialize it properly. For example:
CHANGE MASTER TO MASTER_LOG_FILE='hundin-bin.006', MASTER_LOG_POS=128760128;
Set the statuses of any events that were copied from the
SLAVESIDE_DISABLED. For example:
mysql> UPDATE TABLE mysql.event SET status = 'SLAVESIDE_DISABLED';
Start replication in the new slave with the
START SQL command.
Remove the line
skip-slave-start from the
my.cnf file of the slave.