首页/数据/数据库速查/XtraBackup 增量备份
备份与恢复56 条

XtraBackup 增量备份

基于上一次备份的 LSN 只拷贝变化页:--incremental-basedir 指向基准备份目录,层层叠加形成增量链,备份体积与耗时大幅下降。

数据库速查数据更新于 2026-10-13

增量备份是什么

增量备份基于上一次备份记录的 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,否则未提交事务会被提前回滚,之后的增量就应用不上去。

易错点

  • 增量链拉得过长(例如连续几十天不做全备),恢复时间与失败风险同时上升
  • 中间某一环备份文件损坏或被误删,整条链报废且只能退回更早的全备
  • 恢复时忘记 --apply-log-only,导致后续增量无法叠加
  • 把 --incremental-basedir 指向错误的目录,增量实际退化成一次全量或数据不一致
  • 备份任务不校验输出,直到恢复时才发现某一环缺失

数据来源与参考

  • Percona XtraBackup 文档: 增量备份

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌