Barman备份工具中增量备份的原理与实践
增量备份的基本原理
Barman作为PostgreSQL的专业备份工具,提供了两种主要的备份方式:rsync方式和postgres方式。其中rsync方式支持增量备份功能,这是通过Linux系统的硬链接(hard link)机制实现的。
当使用backup_method = rsync和reuse_backup = link配置时,Barman会利用硬链接来创建文件级别的增量备份。首次备份会完整复制所有数据文件,后续备份则只复制自上次备份后发生变化的文件,未变化的文件则通过硬链接指向之前的备份文件。
如何识别备份类型
通过barman list-backup命令列出的备份信息中,显示的"Size"字段表示恢复该备份所需的所有文件总大小,而不是实际占用的磁盘空间。要准确了解每个备份的实际增量大小,需要使用barman show-backup命令。
在show-backup的输出中,"Disk usage"表示备份的总大小,"Incremental size"则显示该备份实际新增的数据量。例如,一个显示"Incremental size: 5.1 MiB (-80.33%)"的备份,表示该备份实际新增了5.1MB数据,相比完整备份节省了80.33%的空间。
增量备份的百分比计算
增量备份的百分比计算是基于字节级别的比较,公式为:
(增量大小/总大小) - 1
负号表示相比完整备份节省的空间比例。由于显示时进行了单位转换和四舍五入,可能与精确计算有微小差异。
备份策略建议
-
无需手动创建完整备份:Barman会自动管理备份链,首次备份即为完整备份,后续备份自动采用增量方式。
-
备份命令使用:
- 常规增量备份:
barman backup pg - 强制完整备份:
barman backup --reuse-backup=off pg
- 常规增量备份:
-
存储空间管理:删除旧备份时,Barman会自动维护文件引用计数,当某文件不再被任何备份引用时才会真正删除。
压缩与增量备份的选择
Barman目前的设计中,压缩功能(backup_compression)仅在使用backup_method = postgres时可用。因此用户需要在以下两种方案中选择:
- rsync方式:支持增量备份但不支持压缩,适合磁盘空间充足的环境
- postgres方式:支持压缩但不支持增量备份,适合需要节省存储空间的场景
常见问题解决
WAL归档与增量备份:WAL归档方式(流式或归档命令)与增量备份机制是独立的。即使使用流式WAL归档(streaming_archiver = on),rsync方式的增量备份仍应正常工作。若遇到问题,建议检查:
- 配置文件是否正确设置了
backup_method = rsync和reuse_backup = link - 文件系统是否支持硬链接
- 备份目录是否有足够的权限
通过理解这些原理和最佳实践,用户可以更有效地利用Barman的增量备份功能,在备份效率和存储成本之间取得平衡。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00