5.x版本如何实现基于时间点的恢复

在TiDB 5.x版本中,有没有能够实现基于时间点恢复的方案,例如通过备份恢复昨天下午3点整那一时刻的数据?

1 个赞

可以用备份加 reparo 解析 binlog,恢复指定时间的 binlog 数据
参考这里
https://docs.pingcap.com/zh/tidb/stable/tidb-binlog-faq#如何用全量--binlog-备份文件来恢复一个集群

2 个赞

br 可以解决你的问题,先全量备份,然后开启增量备份
https://docs.pingcap.com/zh/tidb/stable/use-br-command-line-tool#增量备份

但是这个操作必须手动,或者参考楼上的开启 binlog (5.x 慢慢开始不支持这个能力了,改为 ticdc了)

1 个赞

mark该问题答复

可是增量备份只能恢复到备份的时间点,不能恢复到区间上任意时间点

官方已经放弃的PITR是br全备+ cdclog(使用br restore cdclog恢复,指定start_ts/end_ts), 文档可以能找不到了,但5.4版本前还是可以用的

1 个赞

tidb中的几种备份方式 可以采用br工具来实现,或者你也可以搞一个同步 就不要基于时间点来进行恢复了

目前版本推荐的 PITR 方案是:

  1. 使用 BR 做全量备份
  2. 使用 tidb-binlog 的 file 输出做增量备份(注意该增量不基于全量,是脱钩的另一套机制)
  3. 使用 BR 做全量恢复
  4. 使用 reparo 做增量 binlog 备份文件的恢复
    其中增量与全量对接的时间点在 BR 的全量备份中有记录
2 个赞

感谢,我去测试一下这种方案。另外我看5.x官方文档在推ticdc而不是tidb-binlog,那么这种方案和br restore cdclog比有什么优势,或者为什么目前版本不推荐br restore cdclog这种方式?

另外刚刚才拜读完大佬写的《 同城双中心自适应同步方案 —— DR Auto-Sync 详解》,同样有个疑问想请教一下。DR Auto-Sync现在推荐的都是2+2对等部署,备中心1个voter+1个learner,那这个learner在灾难恢复时一般怎么利用它,或者说和没有这个learner区别有多大

BR 输出增量备份日志的功能还没有 GA,需要再等等。
DR Auto-Sync 中 learner 的作用是恢复灾备中心的时候可以一次拉起两个副本,用空间换取灾难恢复时补副本的时间。

感谢回复。关于第二个问题,我理解一下哈,假设三副本备中心是1个voter+1个learner,备中心这个voter是具有完整数据的副本,那么当主中心完全挂掉的场景下,这时如果要用从备中心拉起TiKV集群,在移除掉故障节点上的peer后,至少需要补1个还2个副本就可以拉起TiKV集群呢?这时这个learner是可以自动顶上去吗,还是需要手动转换它的角色,如果需要转换角色是转成voter还是follower呢?

:grin:

这是一个 2:2 对等部署的方案,备中心故障,主中心 2 副本可以自动接管业务,计算能力为正常集群的 2/3;主中心故障,人工恢复备中心,将 1voter+1learner 转为 2voter,计算能力为正常集群的 2/3。
无论哪种情况,用户都可以自行选择补副本还是等待故障机房恢复。
设置 learner 的原因是考虑备中心只恢复了一个副本,计算能力不足同时容灾能力下降,提前准备一个 learner 可以在灾难恢复时紧急转为正常副本使用。

2 个赞

明白了,感谢~

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。