备份结束后数据会被校验,但是恢复的时候每个 TiKV 节点不能只读自己备份过的数据
这句话的描述到底是对还是不对?
比如br备份到本地,要恢复的话需要每个tikv节点都访问全量的备份数据,一般用s3存储或者挂载nfs方便点
如果之前备份的数据region 发生了切换,那就要去全量的数据了
备份校验:BR 备份结束后无默认自动校验,需手动执行 br check 完成校验,“备份结束后数据会被校验” 的描述不准确
哪个版本有br check这个命令?
TiDB 快照备份与恢复功能架构 - v6.5 | TiDB 文档中心
- TiKV 恢复数据。
- Download SST:restore worker 从备份存储中下载相应的备份数据到本地。
- Rewrite KVs:restore worker 根据新建表 table ID,对备份数据 kv 进行重写,即将原有的 kv 编码中的 table ID 替换为新创建的 table ID。对 index ID,restore worker 也进行相同处理。
- Ingest SST:restore worker 将处理好的 SST 文件 ingest 到 RocksDB 中。
- Report restore result:restore worker 返回恢复结果给 BR。
文档里也写的不清不楚的,我理解是读取相应region的数据更合理
pd上的元数据肯定是需要读取的,再就是information_schema的一些对象信息
每个 TiKV 节点备份的时候只会备份自己节点上是leader的数据的,不能只读自己备份过的数据
如果备份之后regoin的角色发生了切换,那其实之前的region分布的数据就过期了,要读取其他节点备份的数据
备份到本地可以恢复的
TiDB 的备份工具(BR)在备份过程中和结束后,会进行数据完整性校验
在备份阶段,TiKV 节点确实只需要读取自己负责的那部分数据(Region),并将它们上传到存储介质中
对的,恢复时要读多接点数据,保持一致性
2 个赞

