分布式数据库的进度管理: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。
- 异常任务需管理员介入,确保备份进度的有效管理。
➡️