A directory backup, just like a single-file backup, can beprepared and restored using thecopy-back-and-apply-log command as explained at the beginning ofSection 5.1, “Performing a Restore Operation”.
Example 5.14 Restoring a Backup Directory usingcopy-back-and-apply-log
mysqlbackup --defaults-file=/usr/local/mysql/my.cnf \ --backup-dir=/export/backups/full \copy-back-and-apply-logHowever, two alternatives exist for directory backups:
Perform theapply log operation on theraw backup right after the backup, or anytime before restore, using the
apply-logcommand. You can run this step on the same database server where you did the backup, or transfer the raw backup files to a different system first, to limit the CPU and storage overhead on the database server. Here are some examples of doing that, on different kinds of directory backups:Example 5.15 Applying the Log to a Backup
This example runsmysqlbackup to roll forward the data files so that the data is ready to be restored:
mysqlbackup --backup-dir=/export/backups/2011-06-21__8-36-58 apply-logThat command creates InnoDB log files (
ib_logfile*) within the backup directory and applies log records to the InnoDB data files (ibdata*and*.ibd).Example 5.16 Applying the Log to a Compressed Backup
If the backup is compressed, as inSection 4.3.4, “Making a Compressed Backup”, specify the
--uncompressoption tomysqlbackup when applying the log to the backup:mysqlbackup --backup-dir=/export/backups/compressed --uncompress apply-logNoteSince theapply log operation does not modify any of the original files in the backup, nothing is lost if the operation fails for some reason (for example, insufficient disk space). After fixing the problem, you can safely retry
apply-logand by specifying the--forceoption, which allows the data and log files created by the failedapply log operation to be overwritten.For backups that are non-incremental, you can combine the initial backup and the
apply-logsteps using thebackup-and-apply-logcommand.
After the backup has been prepared, you can now restore it using thecopy-back command:
mysqlbackup --defaults-file=/usr/local/mysql/my.cnf \ --backup-dir=/export/backups/full \ copy-back