Percona XtraBackup has implemented support for compressed backups. It can be used to compress/decompress local or streaming backup with xbstream.
In order to make a compressed backup you’ll need to use
xtrabackup --compress option:
$ xtrabackup --backup --compress --target-dir=/data/compressed/
If you want to speed up the compression you can use the parallel compression,
which can be enabled with
xtrabackup --compress-threads option.
Following example will use four threads for compression:
$ xtrabackup --backup --compress --compress-threads=4 \ --target-dir=/data/compressed/
Output should look like this
... 170223 13:00:38  Compressing ./test/sbtest1.frm to /tmp/compressed/test/sbtest1.frm.qp 170223 13:00:38  ...done 170223 13:00:38  Compressing ./test/sbtest2.frm to /tmp/compressed/test/sbtest2.frm.qp 170223 13:00:38  ...done ... 170223 13:00:39  Compressing xtrabackup_info 170223 13:00:39  ...done xtrabackup: Transaction log of lsn (9291934) to (9291934) was copied. 170223 13:00:39 completed OK!
Before you can prepare the backup you’ll need to uncompress all the files.
Percona XtraBackup has implemented
xtrabackup --decompress option
that can be used to decompress the backup.
$ xtrabackup --decompress --target-dir=/data/compressed/
Percona XtraBackup doesn’t automatically remove the compressed files. In
order to clean up the backup directory you should use
xtrabackup --remove-original option. Even if they’re not removed
these files will not be copied/moved over to the datadir if
xtrabackup --copy-back or
xtrabackup --move-back are used.
When the files are uncompressed you can prepare the backup with the
xtrabackup --prepare option:
$ xtrabackup --prepare --target-dir=/data/compressed/
You should check for a confirmation message:
InnoDB: Starting shutdown... InnoDB: Shutdown completed; log sequence number 9293846 170223 13:39:31 completed OK!
Now the files in
/data/compressed/ are ready to be used by the server.
$ xtrabackup --copy-back --target-dir=/data/backups/
It will copy all the data-related files back to the server’s datadir,
determined by the server’s
my.cnf configuration file. You should check
the last line of the output for a success message:
170223 13:49:13 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 that the datadir contains the restored data. You are ready to start the server.
For general inquiries about our open source software and database management tools, please send us your question and someone will contact you.