These options are for backing up database servers that play specific roles in replication, or contain certain kinds of data that require special care in backing up.
When backing up a replication slave server, this option captures information needed to set up an identical slave server. It creates a file
meta/ibbackup_slave_infoinside the backup directory, containing a
CHANGE MASTERstatement with the binary log position and name of the binary log file of the master server. This information is also printed in the mysqlbackup output. To set up a new slave for this master, restore the backup data on another server, start a slave server on the backup data, and issue a
CHANGE MASTERcommand with the binary log position saved in the
ibbackup_slave_infofile. See Section 6.1, “Setting Up a New Replication Slave” for instructions.
This option pauses the mysqlbackup command when the backup procedure is close to ending. It creates a file called
ibbackup_suspendedin the backup log group home directory and waits until you delete that file before proceeding. This option is useful to customize locking behavior and backup of non-InnoDB files through custom scripting.
All tables are locked before suspending, putting the database into a read-only state, unless you turn off locking with the
--only-innodb-with-frmoptions also prevent the locking step. Because locking all tables could be problematic on a busy server, you might use a combination of
--suspend-at-endto back up only certain non-InnoDB tables.
You can use this option to write a script that backs up any information that is not part of the usual backup, for example by using mysqldump to back up tables from the MEMORY storage engine that are not on disk.
Within your script, the
BACKUP_DIRenvironment variable is set and points to the current backup directory. Use single quotes to prevent premature expansion of
$BACKUP_DIR, as in the following examples.
On Unix or Linux systems:
mysqlbackup --exec-when-locked='mysqldump mydb t1 > $BACKUP_DIR/t1.sql'
Or on Windows systems:
mysqlbackup --exec-when-locked="mysqldump mydb t1 > %BACKUP_DIR%/t1.sql"
If the utility cannot be executed or returns a non-zero exit status, then the whole backup process is cancelled. If you also use the
--suspend-at-endoption, the utility specified by
--exec-when-lockedis executed after suspending.