Creating a Backup with innobackupex

innobackupex is the tool that glues xtrabackup and tar4ibd, which are specific tools, plus adding functionality to provide a single interface to backup all the data in your database server.

To create a full backup, invoke the script with the options needed to connect to the server and only one argument: the path to the directory where the backup will be stored

$ innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/

and check the last line of the output for a confirmation message:

innobackupex: Backup created in directory '/path/to/BACKUP-DIR/2011-12-25_00-00-09'
innobackupex: MySQL binlog position: filename 'mysql-bin.000003', position 1946
111225 00:00:53  innobackupex: completed OK!

The backup will be stored within a time stamped directory created in the provided path, /path/to/BACKUP-DIR/2011-12-25_00-00-09 in this particular example.

Under the hood

innobackupex called xtrabackup binary to backup all the data of InnoDB tables (see Creating a Backup for details on this process) and copied all the table definitions in the database (.frm files), data and files related to MyISAM, MERGE (reference to other tables), CSV and ARCHIVE tables, along with triggers and database configuration information to a time stamped directory created in the provided path.

It will also create the following files for convenience on the created directory:

  • Information related to the backup and the server

    • xtrabackup_checkpoints

      The type of the backup (e.g. full or incremental), its state (e.g. prepared) and the LSN range contained in it.

    • xtrabackup_binlog_info

      The binary log file used by the server and its position at the moment of the backup.

    • xtrabackup_binlog_info

      The binary log file and its current position for InnoDB or XtraDB tables.

    • xtrabackup_binary

      The xtrabackup binary used in the process.

    • backup-my.cnf

      The options of the configuration file used in the backup.

  • Information related to the replication environment (if using the --slave-info option):

    • xtrabackup_slave_info

      The CHANGE MASTER statement needed for setting up a slave.

  • The output of mysqld during the backup process:

    • mysql-stderr
    • mysql-stdout

Other options to consider

The --no-timestamp option

This option tells innobackupex not to create a time stamped directory to store the backup:

$ innobackupex --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/ --no-timestamp

innobackupex will create the BACKUP-DIR subdirectory (or fail if exists) and store the backup inside of it.

The --defaults-file option

You can provide other configuration file to innobackupex with this option. The only limitation is that it has to be the first option passed:

$ innobackupex --defaults-file=/tmp/other-my.cnf --user=DBUSER --password=DBUSERPASS /path/to/BACKUP-DIR/

Contact Us

For free technical help, visit the Percona Community Forum.
To report bugs or submit feature requests, open a JIRA ticket.
For paid support and managed or professional services, contact Percona Sales.