备份策略
没演练过恢复 = 没备份——很多团队定期备份但从未真的恢复过,关键时刻才发现备份根本不能用。
3-2-1 备份原则
Section titled “3-2-1 备份原则”经典的备份准则:
- 3 份备份(原始 + 2 份副本)
- 2 种存储介质(硬盘 + 云端 / 不同服务器)
- 1 份异地(不同物理位置)
例子:
原始数据:BangNiCMS 服务器副本 1:同机房另一台服务器(快速恢复)副本 2:异地云存储(防止机房整体灾难)| 数据类型 | 频率 |
|---|---|
| 数据库(核心) | 每天自动备份;高流量站点每小时增量 |
| 媒体文件(图片 / 视频) | 每天增量;每周完整 |
| 主题 / 插件 / 模型包 | 改动后立即;每月完整 |
| 服务器配置 | 改动后立即 |
完整备份 vs 增量备份
Section titled “完整备份 vs 增量备份”| 类型 | 内容 | 优势 | 劣势 |
|---|---|---|---|
| 完整备份 | 所有数据 | 恢复简单 | 占空间大 |
| 增量备份 | 仅自上次备份后变化的 | 占空间小、快 | 恢复需要全部增量串起 |
| 差异备份 | 自上次完整备份后的变化 | 中庸 | 中庸 |
典型方案:
- 每周一:完整备份
- 周二-周日:每天增量备份
- 恢复 = 周一完整 + 之后所有增量
本地服务器(次要)
Section titled “本地服务器(次要)”优势:
- 恢复极快(毫秒级)
- 无网络成本
劣势:
- 服务器整体灾难时全丢
- 不防勒索软件
适合:作为第一份副本。
云存储(主要)
Section titled “云存储(主要)”| 服务 | 适合 | 成本 |
|---|---|---|
| 阿里云 OSS | 中国大陆 | ¥0.12 / GB / 月 |
| 腾讯云 COS | 中国大陆 | 类似 |
| AWS S3 | 全球 | $0.023 / GB / 月 |
| Backblaze B2 | 性价比 | $0.005 / GB / 月(极便宜) |
优势:
- 异地、防灾难
- 自动多副本(云服务商内部)
- 可控成本
物理介质(高安全场景)
Section titled “物理介质(高安全场景)”适合:
- 涉及国家秘密 / 行业法规要求
- 离线副本(应对勒索软件)
实现:每月把云端备份导出到物理磁盘,存到保险箱。
| 数据类型 | 保留 |
|---|---|
| 每日备份 | 30 天 |
| 每周备份 | 12 周 |
| 每月备份 | 24 个月 |
| 年度备份(重要节点) | 5 年 |
意义:
- 30 天前发现的问题 → 还有备份能恢复
- 长期归档应对审计 / 法律要求
备份必须加密——否则备份文件本身就是数据泄漏点。
加密方式:
- 存储时加密(at rest):云服务商默认支持
- 传输时加密(in transit):HTTPS / SSH
- 客户端加密:你自己加密后再传(最安全)
密钥管理:
- 密钥不要和备份放一起(同时丢就完蛋)
- 密钥放密码管理器 / HSM(硬件安全模块)
手动备份不可靠——人会忘 / 会偷懒。必须自动化。
典型方案(让运维实现):
每天凌晨 3 点(业务低峰) ↓脚本触发: 1. 数据库 dump 2. 增量同步媒体目录 3. 加密 4. 上传到云存储 5. 校验完整性 6. 删除超过保留期的旧备份 7. 发邮件 / 钉钉报告"成功"或"失败"详见 运维 / 开发者文档(建设中)。
自动化≠万事大吉——必须监控:
- 每天看一下”备份成功”通知
- 备份失败立刻处理
- 备份文件大小是否正常(突然变小可能内容丢失)
- 定期抽样恢复验证
红灯:
- 备份失败连续 2 次
- 备份大小骤减 50%+
- 7 天没收到备份通知
最重要的一步——很多团队从未真的恢复过备份。
每季度做一次:
-
创建测试环境(不影响生产)
-
从备份恢复到测试环境
-
验证:
- 内容完整?
- 翻译完整?
- 用户能登录?
- 媒体文件存在?
- 站点设置正确?
-
记录恢复过程:
- 多久能恢复(RTO 目标 < 4h)
- 数据丢失多少(RPO 目标 < 1h)
-
改进:发现的问题立刻修
RTO 和 RPO
Section titled “RTO 和 RPO”两个关键指标:
- RTO(Recovery Time Objective):从灾难发生到完全恢复的最长时间
- RPO(Recovery Point Objective):能接受的最大数据丢失
典型目标:
| 业务类型 | RTO | RPO |
|---|---|---|
| 个人博客 | 24h | 24h |
| 中小 B2B | 4h | 1h |
| 大型电商 | 30 分钟 | 5 分钟 |
| 金融 / 医疗 | 5 分钟 | 0(零丢失) |
让运维根据业务配相应方案——RPO 越小成本越高。
勒索软件可能加密所有数据包括备份:
防御:
- 备份不写入 = 攻击者改不了
- 离线备份(物理磁盘 + 保险箱)
- 多重身份验证访问备份
- 只追加云存储(appendonly)
备份占多少存储?
Section titled “备份占多少存储?”中型站点(500 篇内容、10 GB 媒体):
- 数据库:约 100-500 MB / 备份
- 媒体:增量约 100 MB / 天
全年成本(云存储):
- 数据库 / 配置:~10 GB → ¥15-50 / 年
- 媒体:~50 GB → ¥75-300 / 年
完全可控。
我能让运维不知道密钥但能恢复吗?
Section titled “我能让运维不知道密钥但能恢复吗?”可以——通过多人共管密钥:
- Shamir Secret Sharing:把密钥拆成 5 份,3 份能恢复
- 多人各持一份
- 紧急时多人同时授权
适合高安全场景(金融、政府)。
备份恢复需要多久?
Section titled “备份恢复需要多久?”典型数据库(500 MB):5-30 分钟
含媒体(10 GB):1-4 小时
完整灾难恢复(裸机):4-12 小时
可以通过热备(standby)服务器降到秒级——但成本翻倍。
我能从备份恢复单条内容吗?
Section titled “我能从备份恢复单条内容吗?”取决于备份方式:
- 完整数据库备份 → 恢复整库 → 复杂
- 逐条审计日志回滚 → 简单(详见 角色与权限 - 操作日志)
最佳实践:误删单条 → 看操作日志找操作前数据 → 手工录回。
备份丢了怎么办?
Section titled “备份丢了怎么办?”如果所有备份都丢失:
- 看 SaaS 服务商(云存储、托管平台)是否有”地球级”备份
- 联系搜索引擎缓存(Google、百度可能存了一份)
- 接受损失,从零开始
预防:3-2-1 原则就是为了避免这个。