在创建增量备份时,需要先有一个备份作为基础(如果你知道它的LSN,那倒不需要)。
如下演示在一个全量备份的基础上进行2次增量备份,并进行恢复。
创建备份
# 全量备份--作为基础
./xtrabackup --backup --host=127.0.0.1 --user=root --password=123456 --target-dir=/root/xtrabackup/bin/backup/base
# 第一次增量备份--基于全量备份做增量备份
./xtrabackup --backup --host=127.0.0.1 --user=root --password=123456 --target-dir=/root/xtrabackup/bin/backup/inc1 --incremental-basedir=/root/xtrabackup/bin/backup/base
# 第二次增量备份--基于第一次增量备份做第二次增量备份
./xtrabackup --backup --host=127.0.0.1 --user=root --password=123456 --target-dir=/root/xtrabackup/bin/backup/inc2 --incremental-basedir=/root/xtrabackup/bin/backup/inc1
准备备份
以全量备份为基础,结合后续的增量备份还原出一份完整的全量备份--这份完整的全量备份在基础备份的目录里/root/xtrabackup/bin/backup/base
# 根据三份备份制作出完整的备份。
# 除了第一条命令(基础备份的准备)可以重复执行外,后续`xtrabackup --prepare`命令不可以重复执行
./xtrabackup --prepare --apply-log-only --target-dir=/root/xtrabackup/bin/backup/base
./xtrabackup --prepare --apply-log-only --target-dir=/root/xtrabackup/bin/backup/base --incremental-dir=/root/xtrabackup/bin/backup/inc1
./xtrabackup --prepare --target-dir=/root/xtrabackup/bin/backup/base --incremental-dir=/root/xtrabackup/bin/backup/inc2
注意:在此步骤中,除了最后一次
prepare
,前面的都需要包含参数--apply-log-only
以防止回滚阶段(如果前面的执行了回滚,后面的备份合并就没意义了)。最后一次prepare
也可以包含--apply-log-only
,服务器会发现并回滚的。
恢复备份
与全量备份的恢复备份步骤一样,详见:Xtrabackup--全量备份
参考:https://www.percona.com/doc/percona-xtrabackup/2.4/backup_scenarios/incremental_backup.html
网友评论