Percona XtraBackup supports compressed backups: a local or streaming backup can be compressed or decompressed with xbstream.
Creating Compressed Backups¶
In order to make a compressed backup you’ll need to use the xtrabackup –compress option:
$ xtrabackup --backup --compress --target-dir=/data/compressed/
xtrabackup --compress uses the
qpress tool that you can install via
percona-release package configuration tool as follows:
$ sudo percona-release enable tools $ sudo apt update $ sudo apt install qpress
Enable the repository:
percona-release enable-only tools release. If you intend to use Percona XtraBackup in combination with the upstream MySQL Server, you only need to enable the
percona-release enable-only tools.
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!
Preparing the backup¶
Before you can prepare the backup you must 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/
xtrabackup --parallel can be used with
xtrabackup --decompress option to decompress multiple files simultaneously.
Percona XtraBackup does not automatically remove the compressed files. In
order to clean up the backup directory, use the
xtrabackup --remove-original option. If the files not removed
they are not copied or moved 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/
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.
Restoring the backup¶
xtrabackup has a
xtrabackup --copy-back option, which performs the
restoration of a backup to the server’s datadir:
$ xtrabackup --copy-back --target-dir=/data/backups/
The option copies all the data-related files back to the server’s
determined by the server’s
my.cnf configuration file. Check the last line of the output for a success message:
170223 13:49:13 completed OK!
Verify the file permissions after copying the data back. You may need to adjust the permissions. For example, the following command changes the owner of the file location:
$ chown -R mysql:mysql /var/lib/mysql
Now that the
datadir contains the restored data. You are ready to start