一、先把 RPO / RTO 写成具体数字

举报
yd_257405204 发表于 2026/10/19 10:30:20 2026/10/19
【摘要】 一、先把 RPO / RTO 写成具体数字 备份方案不是越贵越好,关键是先回答两个问题: 能接受丢多少数据(RPO) 、 能接受停多久(RTO) 。小团队定一个够用的基线就行:核心业务库 RPO 15 分钟、RTO 2

一、先把 RPO / RTO 写成具体数字

备份方案不是越贵越好,关键是先回答两个问题:能接受丢多少数据(RPO)、能接受停多久(RTO)。小团队定一个够用的基线就行:核心业务库 RPO 15 分钟、RTO 2 小时;用户上传的文件和图片 RPO 24 小时、RTO 8 小时;日志、埋点这类可以接受丢一天。把这三个数字和对应负责人写进仓库根目录的 RUNBOOK.md,而不是留在某个人脑子里,因为那个人休假时最容易出事。

二、3-2-1 在小团队里的最小落地

原则是三份副本、两种介质、一份异地。具体做法是:生产机本地快照(LVM/ZFS 或云盘快照)、同城另一台机器、对象存储。对象存储务必开版本控制和生命周期规则,条件允许再开 Object Lock,防止勒索软件把备份一起加密删掉。

  • 数据库用 pg_dump -Fc 每天全量,配合 WAL 归档做 PITR;MySQL 用 mysqldump --single-transaction 或 xtrabackup。
  • 文件用 restic 增量推到 S3 兼容存储:restic -r s3:... backup /data --exclude-caches,自带加密和去重。
  • 别忘了“配置”:.env、Nginx 配置、crontab、CI 变量、DNS 记录、第三方账号的恢复码。只备份数据库的人,重建时一定会在配置上卡两天。

三、让备份可验证、可告警

最常见的翻车不是没备份,是备份了但恢复不了。三件事必须做:

  • 校验:备份完算 sha256 写进清单;restic 定期跑 restic check --read-data-subset=5%。
  • 自动恢复演练:每周把最新备份 restore 到一台临时库,跑几条 select count(*) 和主库比对,不一致就告警。
  • 监控:任务失败告警之外,重点盯“最新备份时间戳超过阈值”和“备份体积突降 50%”。后者能抓住 pg_dump 中途报错但仍返回 0 的经典坑。

四、几个真实踩过的坑

  • 备份脚本跑在被备份的那台机器上,机器挂了脚本也没了。调度要放到外部(云函数、另一台机器、CI 定时任务)。
  • 磁盘写满,dump 写了一半,文件存在但不可用。备份前先检查剩余空间,写入用 .tmp 后缀,成功后再 mv 成正式文件名。
  • 密钥和备份放在同一个桶里,等于没加密。
  • 只有一个人会恢复。至少让两个人各自独立做过一次完整恢复演练,并把耗时记进 RUNBOOK。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。