Auto-sync: 2026-04-22 04:02
This commit is contained in:
67
wiki/concepts/增量备份.md
Normal file
67
wiki/concepts/增量备份.md
Normal file
@@ -0,0 +1,67 @@
|
||||
---
|
||||
title: "增量备份"
|
||||
tags: [backup, storage, devops]
|
||||
date: 2026-04-26
|
||||
---
|
||||
|
||||
# 增量备份 (Incremental Backup)
|
||||
|
||||
## Definition
|
||||
增量备份是一种数据保护策略,仅备份自上次备份以来发生变化的数据。与全量备份相比,显著减少备份时间、存储空间和网络带宽需求。
|
||||
|
||||
## Core Principles
|
||||
- **差异检测**: 通过比较源端与目标端文件的时间戳、大小或校验和,识别需要备份的变更
|
||||
- **链式依赖**: 增量备份依赖前一次备份作为基础,恢复时需按顺序还原所有增量链
|
||||
- **增量同步**: rsync 等工具通过 SSH 传输变更块,实现高效的增量数据传输
|
||||
|
||||
## Key Mechanisms
|
||||
|
||||
### rsync Algorithm
|
||||
rsync 是最常用的增量备份工具,核心机制包括:
|
||||
- **快速检测**: 通过滑动窗口算法快速定位差异块
|
||||
- **增量传输**: 仅传输变化的部分,而非整个文件
|
||||
- **校验和对比**: 使用 MD4/MD5 校验和比较远程与本地文件块
|
||||
|
||||
### Key Parameters
|
||||
```bash
|
||||
rsync -azR --delete \
|
||||
--exclude="venv/" \
|
||||
--exclude="**/__pycache__/" \
|
||||
--exclude=".git/" \
|
||||
/source/ /destination/
|
||||
```
|
||||
- `-a`: 归档模式(保留权限、时间戳、链接等)
|
||||
- `-z`: 压缩传输
|
||||
- `-R`: 使用相对路径
|
||||
- `--delete`: 删除目标端多余文件(镜像同步)
|
||||
|
||||
## Related Concepts
|
||||
- [[Disaster-Recovery]] — 增量备份是灾备策略的核心组件
|
||||
- [[RTO]] — 恢复时间目标,受备份频率影响
|
||||
- [[RPO]] — 恢复点目标,由增量备份间隔决定
|
||||
|
||||
## Related Practices
|
||||
- **rsync 增量同步**: 通过 SSH 或直接访问实现本地/远程增量备份
|
||||
- **快照备份**: 通过 LVM/ZFS 快照实现接近零 RPO 的增量保护
|
||||
- **链式增量**: 定期创建全量备份,中间插入增量备份,形成备份链
|
||||
|
||||
## Best Practices
|
||||
1. **定期全量 + 日常增量**: 每周/每月创建全量备份,中间每日增量
|
||||
2. **校验恢复测试**: 定期验证备份可还原性
|
||||
3. **差异对比**: 备份前后对比文件数量和大小
|
||||
4. **错误容错**: rsync 错误码 0/23/24 均视为成功(权限/文件变化问题属正常)
|
||||
|
||||
## Example: rsync 备份脚本片段
|
||||
```bash
|
||||
rsync -azR --delete \
|
||||
--exclude="venv/" \
|
||||
--exclude=".git/" \
|
||||
/var/lib/docker/volumes/ \
|
||||
/etc/docker/ \
|
||||
/mnt/nas_backup/docker_backups/$(date +%Y-%m-%d)/
|
||||
```
|
||||
|
||||
## See Also
|
||||
- [[永久挂载]] — 增量备份需要可靠的网络存储作为目标端
|
||||
- [[Cron定时任务]] — 自动化执行增量备份
|
||||
- [[进程管理]] — 备份进程的安全终止
|
||||
Reference in New Issue
Block a user