Skip to main content
Documents
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

pgBackRest 差量备份 和 增量备份 有什么区别?

一句话总结(最简单版)

  • 差量备份(diff):基于 最近的一次 full 备份 做变化对比
  • 增量备份(incr):基于 最近的一次 backup(full/diff/incr 都算) 做变化对比

图示理解(最直观)

假设做了一个全量备份:

F1(Full)

📌 差量备份(Diff)

F1 ---- D1 (Diff,相对于 F1)
     ---- D2 (Diff,相对于 F1)
     ---- D3 (Diff,相对于 F1)

每次差量备份都要和 最近一次 full 比较,所以 diff 会不断变大。

📌 增量备份(Incr)

F1 ---- I1 (Incremental 相对于 F1)
       ---- I2 (Incremental 相对于 I1)
             ---- I3 (Incremental 相对于 I2)

每一次 incr 都是相对于 前一次备份,空间最小。

实际区别(生产角度)

特性 diff(差量) incr(增量)
对比基准 最近 full 最近任何备份
周期内大小 越来越大 通常很小
恢复链长度 Full + 1 个 diff Full + 多个 incr
恢复速度 更快(链短) 更慢(链长)
存储空间 更多 更少
适用场景 恢复优先 空间优先

生产建议(最常用策略)

📌 推荐备份策略

最常见的企业生产策略是:

每天 1 次 full
每 6 小时 1 次 diff
每小时 1 次 incr

原因:

  • diff 让恢复不会太慢(链短)
  • incr 让日常备份数据量最小
  • full 让整个链不会无限长

这也是 pgBackRest 官方推荐方案

为何需要 diff + incr 混合使用?

diff 使恢复简单

恢复只需要:

Full + Diff + WAL

incr 节省大量存储空间

每天几十次 incr,但每次很小。

两者结合,兼顾:

  • 恢复速度快
  • 空间占用小

恢复时到底会用哪几个备份?

举例:

F1 -> D1 -> I1 -> I2 -> I3

如果你恢复 I3:

pgBackRest 会自动使用:

F1 + D1 + I1 + I2 + I3 + WAL

恢复链条越长,恢复越慢。

结论(便于记忆)

差量备份 Diff:永远基于 Full,备份内容越来越多;恢复时链短。

增量备份 Incr:永远基于上一次备份,内容最小;恢复时链长。