xtrabackup 备份及恢复
参考
- [原理解析] XtraBackup全量备份还原
- [原理解析] XtraBackup增量备份还原
- [原理解析] XtraBackup 备份恢复时为什么要加 apply-log-only 参数?
- Xtrabackup 官方文档
全量备份
# 使用 `xtrabackup --backup` 执行备份
xtrabackup --backup --host=localhost --user=root --password=123456 --target-dir=/data/backups/
prepare
# 回放Redo log中的事务,未提交的事务回滚
xtrabackup --prepare --target-dir=/data/backups/
restore
文件恢复,前提是/var/lib/mysql目录为空
xtrabackup --copy-back --target-dir=/data/backups/
增量备份
# 先进行一次全量备份base
xtrabackup --backup --target-dir=/data/backups/base
# 基于base做增量备份inc1
xtrabackup --backup --target-dir=/data/backups/inc1 --incremental-basedir=/data/backups/base
# 基于inc1做增量备份inc2
xtrabackup --backup --target-dir=/data/backups/inc2 --incremental-basedir=/data/backups/inc1
prepare
apply-log-only 表示只应用redo log,未提交的事务不回滚。
# prepare base
xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base
# 基于base prepare inc1, 将数据变更写入base
xtrabackup --prepare --apply-log-only --target-dir=/data/backups/base --incremental-dir=/data/backups/inc1
# 基于base prepare inc2, 将数据变更写入base
# 最后一次不加--apply-log-only
xtrabackup --prepare --target-dir=/data/backups/base --incremental-dir=/data/backups/inc2