准备阶段与全量备份的准备阶段有所不同,这个阶段需要注意的问题更多。 对于每一个增量备份,只有已经提交了的事务才能被重做。这个过程是将全备的内容与增量备份的内容合并到一起。 那些没有被提交的事务必须被回滚掉,以得到一份可以用来恢复的数据。具体步骤如下。 1)对基本备份进行准备。 innobackupex--apply-log--redo-only BASE-DIR(BASE-DIR即之前全备的那个目录),运行完毕后,你会看到类似如下的输出。 120103 22:00:12 InnoDB: Shutdown completed; log sequence number 1291135 120103 22:00:12 innobackupex: completed OK! 2)合并第一次的增量备份。 innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1 3)合并第二次的增量备份。 innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2如果有“completed OK!”字样,则表示应用准备成功。注意--redo-only选项,对最后一个增量备份不要使用--redo-only选项。 4)合并完所有的增量备份之后,我们运行如下命令来准备好整个数据库文件。 innobackupex --apply-log BASE-DIR现在我们的备份文件可以用来进行恢复还原了。 (2)数据恢复(restore)阶段在完成了增量备份的准备阶段后,现在的基准目录(base+incremental=full)就像是做了一个全备的目录,可以直接进行重建。 innobackupex --copy-back BASE-DIR 7.时间点恢复通过innobackupex和MySQL服务的二进制日志文件可以进行基于时间点的恢复,将数据库恢复到历史的某个状态。二进制日志中保存着对数据库的操作细节,你可以用一个历史备份再加上二进制日志来将数据库恢复到某个时刻。时间点恢复的过程大致如下。我们先通过innobackupex做一次全备。 innobackupex /path/to/backup --no-timest