Making a Compressed Backup

In order to make a compressed backup you’ll need to use innobackupex --compress

$ innobackupex --compress /data/backup

If you want to speed up the compression you can use the parallel compression, which can be enabled with innobackupex --compress-threads option. Following example will use four threads for compression:

$ innobackupex --compress --compress-threads=4 /data/backup

Output should look like this

...
[01] Compressing ./imdb/comp_cast_type.ibd to /data/backup/2013-08-01_11-24-04/./imdb/comp_cast_type.ibd.qp
[01]        ...done
[01] Compressing ./imdb/aka_name.ibd to /data/backup/2013-08-01_11-24-04/./imdb/aka_name.ibd.qp
[01]        ...done
...
130801 11:50:24  innobackupex: completed OK

Preparing the backup

Before you can prepare the backup you’ll need to uncompress all the files with qpress (which is available from Percona Software repositories). You can use following one-liner to uncompress all the files:

$ for bf in `find . -iname "*\.qp"`; do qpress -d $bf $(dirname $bf) && rm $bf; done

In Percona XtraBackup 2.1.4 new innobackupex --decompress option has been implemented that can be used to decompress the backup:

$ innobackupex --decompress /data/backup/2013-08-01_11-24-04/

Note

In order to successfully use the innobackupex --decompress option, qpress binary needs to installed and within the path. innobackupex --parallel can be used with innobackupex --decompress option to decompress multiple files simultaneously.

When the files are uncompressed you can prepare the backup with innobackupex --apply-log:

$ innobackupex --apply-log /data/backup/2013-08-01_11-24-04/

You should check for a confirmation message:

130802 02:51:02  innobackupex: completed OK!

Now the files in /data/backups/2013-08-01_11-24-04 is ready to be used by the server.

Note

Percona XtraBackup doesn’t automatically remove the compressed files. In order to clean up the backup directory users should remove the *.qp files.

Restoring the backup

Once the backup has been prepared you can use the innobackupex --copy-back to restore the backup.

$ innobackupex --copy-back /data/backups/2013-08-01_11-24-04/

This will copy the prepared data back to its original location as defined by the datadir in your my.cnf.

After the confirmation message:

130802 02:58:44  innobackupex: completed OK!

you should check the file permissions after copying the data back. You may need to adjust them with something like:

$ chown -R mysql:mysql /var/lib/mysql

Now the datadir contains the restored data. You are ready to start the server.