Documentation Home
MySQL Enterprise Backup 4.0 User's Guide
Related Documentation Download this Manual
PDF (US Ltr) - 1.2Mb
PDF (A4) - 1.2Mb

15.16 Options for Special Backup Types

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.

  • --slave-info

    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_info inside the backup directory, containing a CHANGE MASTER statement 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 MASTER command with the binary log position saved in the ibbackup_slave_info file. See Section 7.1, “Setting Up a New Replication Slave” for instructions.


    Only use this option when backing up a slave server. Its behavior is undefined when used on a master or non-replication server.

    This option is not compatible with the --no-locking option; using both options together will make mysqlbackup throw an error.

    This option is not compatible with the --only-innodb or --only-innodb-with-frm options.

  • --safe-slave-backup-timeout=SECONDS

    (For release 4.0.1 and later) For a statement-based replication (SBR) or a mixed-based replication setup, the option specifies the time (in seconds) mysqlbackup will wait for Slave_open_temp_tables to become 0 (which is true when no temporary tables are open) to complete the backup for a slave server by asserting a global read lock and copies all the non-InnoDB tables. If the duration of the wait exceeds that specified with the option, mysqlbackup times out and throws an error. The wait is for preventing mysqlbackup from finishing a slave backup when there are temporary tables still open. See descriptions in Temporary tables on statement-based replication (SBR) slave for details on how mysqlbackup deals with temporary tables on a slave server.

    In addition, mysqlbackup also runs an initial check at the beginning of a slave backup to see if Slave_open_temp_tables=0 becomes true within the duration set by --safe-slave-backup-timeout. If it does not, mysqlbackup takes it as an early sign that before the backup is completed, some temporary tables are likely to remain open after the timeout limit is exceeded; mysqlbackup then throws an error, instead of continuing with the backup. When that happens, you can either restart the backup with a higher value for --safe-slave-backup-timeout, or retry at a time when fewer temporary tables are being used.

    Default: 300

    For a row-based replication (RBR) setup, temporary tables are not replicated onto the slave. Users who are certain that SBR is not occurring for the slave can set --safe-slave-backup-timeout=0, with which mysqlbackup will not check for any open temporary tables before finishing the backup.

  • --suspend-at-end

    This option pauses the mysqlbackup command when the backup procedure is close to ending. It creates a file called ibbackup_suspended in 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 --no-locking or --no-connection option. The --only-innodb and --only-innodb-with-frm options also prevent the locking step. Because locking all tables could be problematic on a busy server, you might use a combination of --only-innodb and --suspend-at-end to back up only certain InnoDB tables.

  • --exec-when-locked="utility arg1 arg2 ..."

    Command-Line Format --exec-when-locked="utility arg1 arg2 ..."
    Type String

    You can use this option to run a script that backs up any information that is not included as part of the usual backup. For example, with --exec-when-locked, you can use mysqldump to back up tables from the MEMORY storage engine, which are not on disk.

    Set any variable you want to use within your script before you run mysqlbackup. In the following example, the BACKUP_DIR environment variable is set to point to the current backup directory (quotes are used for the argument of --exec-when-locked, to prevent premature expansion of the variable BACKUP_DIR):

    On Unix or Linux systems:

    export BACKUP_DIR=path_to_backupdir
    mysqlbackup --exec-when-locked="mysqldump mydb t1 > $BACKUP_DIR/t1.sql" other_options mysqlbackup_command

    Or on Windows systems:

    set BACKUP_DIR=path_to_backupdir
    mysqlbackup --exec-when-locked="mysqldump mydb t1 > %BACKUP_DIR%/t1.sql" other_options mysqlbackup_command

    If the utility cannot be executed or returns a non-zero exit status, the whole backup process is cancelled. If you also use the --suspend-at-end option, the utility specified by --exec-when-locked is executed after the suspension is lifted.