xtrabackup 2.4 增量备份
环境 mysql 社区版 5.7.20 centos7.2
增量备份
您可以在每个完整备份之间执行许多增量备份,因此您可以设置备份过程,例如每周一次完整备份和每天增量备份,或每天完整备份和每小时增量备份。
增量备份有效,因为每个InnoDB页面都包含一个日志序列号或LSN。该LSN是整个数据库系统的版本号。每个页面的LSN显示它最近的更改。
创建增量备份
(1)完整备份
要进行增量备份,请像往常一样以完整备份开始。该 xtrabackup二进制写入一个名为xtrabackup_checkpoints到备份的目标目录。
此文件包含一行显示 to_lsn,即备份结束时数据库的LSN。 使用以下命令创建完整备份:
xtrabackup -uroot -p000000 --backup --target-dir=/data/backups/base

(2)在完整备份的基础上,建立增量备份
xtrabackup -uroot -p000000 --backup --target-dir=/data/backups/inc1 --incremental-basedir=/data/backups/base

准备增量备份
(1)
增量备份的步骤与完全备份的步骤不同。在完全备份中,执行两种类型的操作以使数据库保持一致:
从日志文件中对数据文件重放已提交的事务,并回滚未提交的事务。
在准备增量备份时,必须跳过未提交事务的回滚,因为备份时未提交的事务可能正在进行中,并且很可能它们将在下一次增量备份中提交。
可使用-apply-log-only 来阻止回滚阶段。
警告
如果不使用该选项 --apply-log-only 来阻止回滚阶段,那么增量备份将毫无用处。回滚事务后,无法应用进一步的增量备份。
--apply-log-only-
此选项仅在准备备份时执行重做阶段。这对增量备份非常重要。
目前有以下备份
/data/backups/base 完整备份
/data/backups/inc1 增量备份
(2) 要准备基本备份,您需要像往常一样运行,但要阻止回滚阶段
xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base

一般情况下 log sequence number 与 to_lsn 一致
注意
即使已跳过回滚阶段,此备份实际上也可以按原样恢复。
如果你恢复它并启动MySQL,InnoDB将检测到没有执行回滚阶段,并且它将在后台执行,因为它通常用于启动时的崩溃恢复。
它会通知您数据库未正常关闭。
(3)将增量备份应用于完整备份,如果有其它增量备份,按照顺序执行下列语句
xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base --incremental-dir=/data/backups/inc1
友情提示:首次试验,建议创建一个完整备份的副本,方便后续使
恢复备份
xtrabackup --copy-back --target-dir=/data/backups/base
修改权限
chown mysql:mysql /usr/local/mysql/data -R *
启动服务
service mysqld start
查看,已经成功恢复
浙公网安备 33010602011771号