分布式数据库的进度管理:TiDB 备份恢复工具 PiTR 的原理与实践

💡 原文中文,约8100字,阅读约需20分钟。
📝

内容提要

PiTR是TiDB的备份功能,支持将数据库恢复到任意时间点,关键在于处理数据损坏或丢失。它通过TiKV层的备份流程实现,BackupStreamObserver监听Raft状态机,Endpoint负责与外部存储沟通。CheckpointAdvancer管理进度,计算Global Checkpoint,防止备份数据被GC清除。异常任务需管理员介入。PiTR提升了数据库的安全性和可恢复性。

🎯

关键要点

  • PiTR是TiDB的备份功能,支持将数据库恢复到任意时间点,关键在于处理数据损坏或丢失。
  • PiTR允许用户将数据库集群恢复到过去的任意时间点,处理数据损坏、误操作或数据丢失等事件。
  • PiTR通过TiKV层的备份流程实现,涉及BackupStreamObserver和Endpoint组件。
  • BackupStreamObserver监听Raft状态机的写入情况,Endpoint负责与外部存储沟通。
  • CheckpointAdvancer管理备份进度,计算Global Checkpoint,防止备份数据被GC清除。
  • 在TiKV中,备份过程是分布式的,每个TiKV Server记录备份数据并发送到远端存储。
  • 备份进度管理通过记录已备份数据的时间戳实现,确保备份完成前数据不会被GC清除。
  • Global Checkpoint是所有TiKV Checkpoint的最小值,确保整个集群的数据备份进度一致。
  • TiDB侧的CheckpointAdvancer负责更新Global Checkpoint和Service Safepoint。
  • 异常任务需管理员介入,确保备份进度的有效管理。
➡️

继续阅读