linux-sre-handbook

05-数据备份策略

备份 3-2-1 原则

备份类型

类型 说明 优点 缺点
全量备份 完整复制所有数据 恢复简单 耗时长、空间大
增量备份 备份上次备份后的变化 快速、节省空间 恢复需遍历链
差异备份 备份上次全量后的变化 恢复比增量快 随时间变大

rsync — 文件级同步

# 本地同步
rsync -avz /source/ /dest/

# 远程同步
rsync -avz -e ssh /source/ user@remote:/dest/

# 增量备份脚本
rsync -avz --delete --link-dest=../latest \
    /data/ backups/$(date +%Y%m%d)/

tar + 加密

# 创建加密备份
tar -czf - /data | openssl enc -aes-256-cbc -salt -out backup.tar.gz.enc

# 恢复
openssl enc -aes-256-cbc -d -in backup.tar.gz.enc | tar -xzf -

数据库备份

MySQL

# 逻辑备份
mysqldump --single-transaction --routines --triggers \
    -u user -p database | gzip > db_$(date +%Y%m%d).sql.gz

# 物理备份 (Percona XtraBackup)
xtrabackup --backup --target-dir=/backup/mysql/

PostgreSQL

pg_dump -U user database | gzip > db_$(date +%Y%m%d).sql.gz
pg_basebackup -D /backup/pg_base/

LVM 快照备份

lvcreate -L 10G -s -n snap_data /dev/vg_data/lv_data
mount /dev/vg_data/snap_data /mnt/snap
# 从 /mnt/snap 复制数据
umount /mnt/snap
lvremove /dev/vg_data/snap_data

备份验证

# 校验完整性
sha256sum backup.tar.gz > backup.tar.gz.sha256
sha256sum -c backup.tar.gz.sha256

# 定期恢复演练
# 1. 在隔离环境恢复备份
# 2. 验证数据完整性
# 3. 记录恢复时间

延伸阅读