Translate the following blog post title into English, concise and natural. Return plain text only without quotes. PB 级数据分钟级恢复:Uber 数据库备份恢复系统演进

Translate the following blog post title into English, concise and natural. Return plain text only without quotes.

PB 级数据分钟级恢复:Uber 数据库备份恢复系统演进

介绍

Uber 利用先进的存储技术支持其实时业务,包括将在线数据存储在 MySQLApache CassandraetcdApache Zookeeper 等开源数据库中,以及自研的存储解决方案,例如在 Uber 有状态平台上托管的 DocstoreSchemaless

数据库备份与恢复 对于 Uber 的业务连续性和 灾难恢复 至关重要,支持的场景包括:

  • 缓解业务中断
  • 从数据损坏中恢复
  • 取证与合规性保障
  • 模拟生产环境进行负载测试、数据完整性及安全性测试

Uber 的在线存储解决方案规模庞大:

  • 数十 PB 数据容量
  • 每秒处理 数百万到数十亿次请求
  • 备份近 100 PB 数据 可定时执行
  • TB 级至 PB 级数据可在 数分钟到几小时 内完成恢复

本篇博客介绍了 Uber 针对在线数据库 增强型备份恢复系统 的最新研发进展。

---

挑战

在 Uber 的业务规模下改进备份恢复系统,需要克服以下困难:

  • 原始调度方式落后
  • 旧调度方式为周期性尽力执行备份
  • 缺乏资源、优先级、速率限制及可观测性考虑
  • 导致负载峰值波动,恢复缓慢
  • 临时恢复流程
  • 流程缺乏系统定义,仅依赖脚本或陈旧操作手册
  • 数据库升级后恢复流程容易失效
  • 缺乏恢复演练
  • 没有定义恢复负载及流程
  • 缺少定期演练,功能可靠性无法验证
  • 新的恢复目标
  • 历史 RPO 为 7–21 天,RTO 从未知到数天
  • 经过优化后,大多数数据库的 RPO 缩短至 4–24 小时
  • RTO 提升至每小时可恢复 300 TB

---

架构

Uber 的增强型备份恢复系统运行于 有状态平台之上,实现统一抽象管理:

  • 集中式自适应备份调度:跨数据库集群分配任务,确保网络可靠性与安全性
  • 周期性恢复测试:验证备份完整性与恢复流程正确性
  • 建立 CBCR(持续备份 持续恢复)框架

该系统采用 快照式备份与恢复架构,提升灾难恢复能力。

image

图 1:有状态集群的连续备份恢复

系统组件包括:

  • 持续备份协调器:集中配置与调度备份策略,自适应平衡负载
  • 持续恢复协调器:集中配置恢复策略,定期验证备份正确性
  • 备份框架:统一驱动整合技术插件,执行快照逻辑并上传至 Uber Blobstore
  • 恢复框架:统一驱动整合技术插件,下载备份并加载至数据库
  • 技术工作负载组件:包括管理器节点、数据库负载及业务关键辅助负载
  • Uber Blobstore:面向大规模的对象存储虚拟化层,具备策略配置能力

---

持续备份

Time Machine 是持续备份框架的核心,具备全局自适应调度能力:

  • 每日上传 数 PB 数据
  • 与核心业务带宽共享,不影响服务可用性
  • 通过最优选择引擎与速率限制,实现智能备份决策

决策依据包括:

  • 备份新鲜度标准
  • 网络/主机动态可用性
  • 历史备份趋势
  • 企业带宽峰谷差
  • 针对不同技术的速率策略与优先级
  • 地理位置及可用性

流程阶段:

  • 发现:扫描集群,收集全部可备份数据库
  • 选择:应用规则筛选,适应基础设施状况
  • 触发:决定完整/增量模式,启动技术特定备份任务
image

图 2:有状态平台上的持续备份

---

备份框架

image

图 3:备份框架控制流程

统一备份驱动与技术插件配合实现:

  • 数据快照提取
  • 增量上传与速率限制
  • 数据完整性检查
  • 上传索引生成去重
  • 钩子监控防止生产负载中断
  • 快照文件清理以控制磁盘使用

技术适配示例:

  • MySQL / Docstore / Schemaless:基于 Percona Xtrabackup,增强差异备份逻辑
  • Cassandra:基于 nodetool snapshot,类似 Medusa 差分策略
  • etcd:基于 etcd-clientv3 获取时间点快照
  • Zookeeper:备份最新 `snapshot.` 文件

---

Restore Framework

恢复框架设计与备份框架相似,具备 技术无关性自动化能力

  • 模块化架构,适配多种数据库
  • 无需人工干预,减少时间与风险
  • 驱动程序结合数据库特定插件实现恢复逻辑

技术实例:

  • MySQL:使用 Percona XtraBackup 提取与准备数据
  • Cassandra:下载并加载 SSTables
  • etcd / Zookeeper:恢复快照至对应目录并使用专用加载库
image

图 4:恢复框架控制流程

---

持续恢复

持续恢复框架通过频繁验证恢复后的数据,确保备份可用性与正确性:

  • 智能调度:可设置定期或临时测试任务
  • 验证策略:
  • 专用测试:使用已知数据全流程恢复
  • 随机测试:选取生产规模数据库模拟真实条件
  • 数据验证:完整性检查、字节对比、性能与成功率统计
  • 报告输出:提供恢复结果与性能分析,支持合规审计

流程阶段:

  • 发现/选择:根据策略选取数据库并均衡负载
  • 触发:创建测试集群并执行恢复
  • 验证:对比已知数据或检测完整性
  • 报告:输出测试报告并清理资源
image

图 5:有状态集群中的持续恢复框架

优势:

  • 高弹性,降低停机风险
  • 满足合规与审计需求
  • 提升数据可靠性
  • 提供可操作性改进建议

---

作者:Uber Backend

编译:Rio

来源官方博客

dbaplus 投稿邮箱:editor@dbaplus.cn

Read more

Translate the following blog post title into English, concise and natural. Return plain text only without quotes. 哈佛大学 R 编程课程介绍

Harvard CS50: Introduction to Programming with R Harvard University offers exceptional beginner-friendly computer science courses. We’re excited to announce the release of Harvard CS50’s Introduction to Programming in R, a powerful language widely used for statistical computing, data science, and graphics. This course was developed by Carter Zenke.