To save disk space, you can compress InnoDB backup data files by
--compress option of
mysqlbackup. Compression lets you keep more
sets of backup data on hand or save transmission time when
sending the backup data to another server. Also, compression
often results in faster backups because of reduced IO.
The backup compression feature works only for InnoDB tables.
After the InnoDB tablespace files are compressed during backup,
they receive the
.ibz extension. To avoid
wasting CPU cycles without saving additional disk space,
--compress does not attempt to compress tables
that were already-compressed on the server (see
Enabling Compression for a Table); nevertheless, such
tablespace files are also saved with the
extension inside the backup.
When there is unused space within an InnoDB tablespace file, the entire file is copied during an uncompressed backup. Perform a compressed backup to avoid the storage overhead for the unused space.
The binary log and relay log files are compressed and saved with
.bz extension when being included in a
You can also select the compression algorithm to use by the
--compress-method option and, when
using the ZLIB or LZMA compression algorithm, the level of
compression by the
option. See Section 14.6, “Compression Options” for
This is a sample command for making a compressed directory backup:
mysqlbackup --defaults-file=/etc/my.cnf --compress backup
This is a sample command for making a compressed and prepared directory backup (only supported for MySQL Enterprise Backup 3.12.3 and later):
mysqlbackup --defaults-file=/etc/my.cnf --compress-method=zlib --compress-level=5 backup-and-apply-log
This is a sample command for making a compressed single-file backup:
mysqlbackup --defaults-file=/etc/my.cnf --compress-method=zlib --compress-level=5 \ --backup-image=backup.img backup-to-image
See the limitation that applies to compressed backups in Appendix B, Limitations of MySQL Enterprise Backup.
Make a note of the LSN value in the message at the end of both the full and incremental backups (for example, in the line
mysqlbackup: Was able to parse the log up to lsn). You specify this value when performing incremental backups of changes that occur after this full backup.
Apply the log to the compressed backup files, so that the full backup is ready to be restored at any time. You can move the backup data to a different server first, to avoid the CPU and I/O overhead of performing this operation on the database server.
After applying the log, periodically take incremental backups, which are smaller and can be made faster than a full backup.