增量备份是什么
增量备份基于上一次备份记录的 LSN,只拷贝发生变化的数据页:用 --incremental-basedir 指向基准备份目录,逐次执行就形成增量链。它显著降低备份体积与耗时,代价是恢复时需要按顺序逐层叠加,而且链条上任一环损坏,其后的增量都会失效。
基本信息
| 链条起点 | 一次全量备份作为基准备份 |
|---|---|
| 增量命令 | xtrabackup --backup --incremental-basedir=上一份目录 |
| 链条结构 | 全备 → inc1 → inc2,按时间顺序 |
| 恢复方式 | 从全备开始依次 apply,除最后一步都用 --apply-log-only |
| 策略建议 | 每日增量、每周新全备,链条不宜过长 |
典型使用场景
- 降低备份窗口:大库全备耗时太长时改用增量
- 日常滚动备份:每日一份增量,周末重做全备
- 容量控制:增量体积小,降低存储与传输成本
- 恢复演练:验证整条增量链能否顺利叠加
- 备份巡检:确认每一环的备份状态与时间戳完整
- 迁移与扩容:迁移期间先全备再按需增量补齐
增量链示例
增量链示例
# 周日全备
xtrabackup --backup --target-dir=/data/backup/base --user=backup --password=强口令
# 周一增量(基于 base)
xtrabackup --backup --target-dir=/data/backup/inc1 \
--incremental-basedir=/data/backup/base --user=backup --password=强口令
# 周二增量(基于 inc1)
xtrabackup --backup --target-dir=/data/backup/inc2 \
--incremental-basedir=/data/backup/inc1 --user=backup --password=强口令
# 恢复:从 base 开始逐层叠加,除最后一步都带 --apply-log-only
xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base
xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base --incremental-dir=/data/backup/inc1
xtrabackup --prepare --target-dir=/data/backup/base --incremental-dir=/data/backup/inc2全备与增量对照
| 维度 | 全量备份 | 增量备份 |
|---|---|---|
| 数据来源 | 整库数据页 | 相对上一次备份的变化页 |
| 体积与耗时 | 大且长 | 小且短,适合每日执行 |
| 恢复依赖 | 可独立恢复 | 必须依赖前面的全备与增量 |
| 损坏影响 | 仅影响自身 | 一环损坏后续全部不可用 |
增量链上任一环损坏,其后的增量都不可用;链条别拉太长(建议每日增量、每周新全备)。
恢复时的参数顺序决定了叠加能否成功:除最后一层外都必须带 --apply-log-only,否则未提交事务会被提前回滚,之后的增量就应用不上去。