MySQL Enterprise Backup, Using Incrementals

As an experiment I have been testing MySQL Enterprise Backuip (MEB) and incremental backups. 


The idea was to test backing up a multi terabyte database.   The plan was to test using incremental backups to try and get the backup time more manageable.  First thing to note is the MEB can run cummulative and differential incremental backups, which is good but the bad news is without some way of block tracking the process is slow.

The database we are testing is 4TB

Full backup (4TB) - 16 hours
Cummulative  (25GB) -  11 hours 30 mins
Differential (20GB) - 10 hours 50 mins

The problem is the time taken to run the incremental backups.  Without features like block tracking the backup has to check all the blocks to see if there are changed.   This is a long process.

Incremental backups

The process involves new using the following parameters:
--incremental
Specifies the type of backup
--incremental-backup-dir=<location>
Specifies the backup location
--incremental-base=dir:<location>
Specifies the base backup

The incremental-base backup is important if you want to run a cummulative backup use the full backup location and if you want to run a differential then use the last incremental backup location.

For example:

mysqlbackup --incremental --incremental-backup-dir=<location|> --incremental-base=dir:<location> backup

For MEB 3.10 users - there is a bug with MEB when using the thread parameters (--read-threads --process-threads --write-threads).  The backup dies without explaination, fixed in 3.11

5 comments: