92 lines
3.8 KiB
Markdown
92 lines
3.8 KiB
Markdown
---
|
||
title: "RPO (Recovery Point Objective)"
|
||
tags: [devops, disaster-recovery, sre, reliability, data-protection]
|
||
created: 2026-04-25
|
||
---
|
||
|
||
# RPO (Recovery Point Objective)
|
||
|
||
**RPO (Recovery Point Objective)** 是指系统发生故障时,能够接受的最大数据丢失量。它衡量的是数据保护程度——从故障时刻向前追溯,可接受丢失多长时间的数据。
|
||
|
||
## Definition
|
||
|
||
> "RPO is about protecting data. It's measured backwards from the moment of failure." — LaunchDarkly
|
||
|
||
RPO 是灾备规划的核心指标之一,与 [[RTO]](恢复时间目标)共同构成灾备目标体系。
|
||
|
||
## Key Characteristics
|
||
|
||
| 维度 | 说明 |
|
||
|------|------|
|
||
| **衡量对象** | 数据丢失量(Data Loss Amount) |
|
||
| **测量方向** | 从故障时刻向后(Backwards)追溯 |
|
||
| **关注点** | 数据完整性(How Much Data Can Be Lost) |
|
||
|
||
## Example
|
||
|
||
如果数据库在下午 3 点崩溃,而最后一次备份是下午 2 点,则:
|
||
- **RPO = 1 小时**:这意味着过去 1 小时内的数据可能丢失
|
||
- 2:00 到 3:00 之间发生的所有事务都面临丢失风险
|
||
|
||
## RTO vs. RPO
|
||
|
||
RTO 和 RPO 衡量的是不同维度,必须**同时优化**:
|
||
|
||
| 场景 | RTO 目标 | RPO 目标 | 说明 |
|
||
|------|----------|----------|------|
|
||
| 电商结账 | 2 分钟 | 0 秒 | 必须快速恢复,且不能丢失任何交易 |
|
||
| 用户分析面板 | 30 分钟 | 1 小时 | 停机可接受,小时级数据丢失也可接受 |
|
||
| 内部 CRM | 4 小时 | 15 分钟 | 停机可绕过,但近期客户更新很重要 |
|
||
| 博客/营销站 | 2 小时 | 24 小时 | 访问者可以等,丢失一天评论可接受 |
|
||
|
||
**关键**:不能只优化其中一个指标。
|
||
- 30 秒一次备份(RPO 优秀)但恢复需要 6 小时(RTO 极差)= 无效
|
||
- 5 分钟拉起新服务器(RTO 优秀)但丢失 4 小时客户数据(RPO 极差)= 无效
|
||
|
||
## [[Feature Flag]] 对 RPO 的保护
|
||
|
||
传统回滚(Full Deployment Rollback)在回滚过程中可能丢失新事务数据。而 [[Feature Flag]] 回滚**不丢失数据**:
|
||
|
||
- Feature Flag 切换只改变代码执行路径,不触碰数据层
|
||
- [[Kill Switch]] 关闭故障功能时,用户正在提交的数据不受影响
|
||
- RPO 在整个 Feature Flag 操作期间始终保持近零
|
||
|
||
## Tiered RPO Targets
|
||
|
||
| Tier | 场景 | RPO 目标 | 说明 |
|
||
|------|------|----------|------|
|
||
| Critical | 支付处理、交易系统 | < 1 分钟 | 不能丢失任何金钱相关数据 |
|
||
| Important | CRM、客户支持 | < 15 分钟 | 近期客户更新不可丢失 |
|
||
| Nice-to-have | 文档站、内部工具 | < 1 小时 | 数据可重建或接受丢失 |
|
||
|
||
## 实现手段
|
||
|
||
| 方法 | RPO 效果 | 说明 |
|
||
|------|----------|------|
|
||
| 无备份 | ∞ | 完全不可接受 |
|
||
| 每日备份 | 24 小时 | 成本低,RPO 差 |
|
||
| 每小时备份 | 1 小时 | 中等成本和效果 |
|
||
| CDB(持续数据保护) | 秒级 | 持续复制,RPO 接近零 |
|
||
| 同步复制(Active-Active) | 0 | 零数据丢失,成本极高 |
|
||
|
||
## RPO 与 RTO 必须协同
|
||
|
||
最佳实践是同时设定 RTO 和 RPO,并将 [[Feature Flag]] / [[Kill Switch]] 纳入灾备工具链:
|
||
|
||
- RTO 短 → 系统快速恢复
|
||
- RPO 小 → 数据损失少
|
||
- Feature Flag → 两者兼得的性价比方案
|
||
|
||
## Related Concepts
|
||
|
||
- [[RTO]] — Recovery Time Objective,停机时间指标
|
||
- [[Disaster Recovery]] — 灾备策略,RTO/RPO 是其核心目标
|
||
- [[Feature Flag]] — 保护 RPO 的配置级热修复机制
|
||
- [[Kill Switch]] — 关闭故障功能,保护数据不被继续破坏
|
||
- [[High Availability]] — 高可用性,降低 RPO 的基础设施
|
||
- [[Data-Governance]] — 数据治理,包含 RPO 策略
|
||
|
||
## Sources
|
||
|
||
- [[sources/rto-vs-rpo-key-differences-for-modern-disaster-recovery.md]]
|