tar 增量归档是什么
tar 通过一个快照文件记录上次归档时的目录状态,从而只把发生变化的内容写入新的归档,实现文件级增量。快照文件是这套机制的枢纽:它记录了上次的目录与文件信息,下一次运行时据此判断哪些文件是新增、修改或被删除。
基本信息
| 核心参数 | 指定快照文件以实现增量归档 |
|---|---|
| 重新开链 | 显式指定层级 0 生成新的全量锚点 |
| 快照文件 | 记录上次归档状态,必须与归档一起保存 |
| 恢复顺序 | 全量在前,增量按时间顺序依次解包 |
增量与重开链条
增量与重开链条
SNAP=/backup/tar.snap
# 首次运行相当于全量
tar --listed-incremental=$SNAP -czf /backup/full-$(date +%F).tar.gz -C /srv app
# 之后每次运行只归档变化
tar --listed-incremental=$SNAP -czf /backup/inc-$(date +%F).tar.gz -C /srv app
# 重开链条:显式做一次层级 0
tar --listed-incremental=$SNAP --level=0 -czf /backup/full-new-$(date +%F).tar.gz -C /srv app快照文件要点
| 要点 | 说明 |
|---|---|
| 一份数据集一个快照 | 不同目录混用同一个快照文件会误判变化 |
| 随归档保存 | 快照丢失后无法继续增量,只能重开链条 |
| 不可跨主机复用 | 设备与索引信息不一致会导致判断错误 |
| 恢复需配合 | 按序还原可正确处理增量中记录的删除标记 |
使用要点
- 恢复时必须带同样的增量参数按顺序解包,否则删除标记可能被忽略
- 快照文件纳入备份范围:它丢失意味着整条增量链无法继续
- 跨主机的同一份快照文件不能复用:设备与索引记录不一致会误判变化
- 定期重开链条:链条过长会让恢复变慢,也增加断链风险
- 每次归档后记录条目数与体积,异常偏小时及时排查
快照文件丢失或与其他任务混用会导致增量链条错乱;一个数据集一份快照文件,并把它一并纳入备份范围。
与块级增量的差别
- 粒度不同:文件级以整文件为单位,块级只传变化的数据块
- 效率不同:大文件中只有少量变化时,块级增量的效果更好
- 依赖不同:文件级依赖快照文件记录状态,块级依赖位图或存储层差异
- 混用风险高:两种语义不能互相替代,同一数据集只选一种