tidb br日志增量备份恢复问题

【 TiDB 使用环境】生产环境
【 TiDB 版本】v7.1.1
【复现路径】restore无法恢复30分钟前的数据
【遇到的问题:问题现象及影响】一次br全量备份后,开启日志增量备份,现在恢复半小时前的数据无法恢复。报错Error: it has gap between full backup ts:448487459931815937(2024-03-19 18:24:47.069 +0800 CST) and log backup ts:448487473956519937(2024-03-19 18:25:40.569 +0800 CST). :[BR:Common:ErrInvalidArgument]invalid argument
报错

【资源配置】
【附件:截图/日志/监控】

是不是只能恢复全量备份前那段时间点,全量备份后不行

先开日志,再全库备份,你可以全库备份以后的

1 个赞

昨天全备了。然后开启了日志,今天准备测试下恢复不行。
tiup br restore point --pd “pd-01:30001” \

–storage="s3://tidb-test-backup/br/logbackup? \

–full-backup-storage="s3://tidb-test-backup/br/snapshot-202403191824 \

–restored-ts ‘2024-03-20 11:58:00+0800’

你日志备份指定的ts是不是和全量备份时的ts中间有漏掉的,日志备份最好时指定全量备份完成时的ts,或者直接先开始日志备份,然后来是全量备份

1 个赞

谢谢大佬,日志备份没有指定ts呢


我是先全备然后开启日志备份的

所以你顺序反了,先开日志在全库备份,丢了全库部分后的部分日志

1 个赞

谢谢大佬,那后续 如果持续备份我应该怎么定时呢,每天一次全备,日志备份不关闭嘛?

可以参考: TiDB 日志备份与 PITR 使用指南 | PingCAP 文档中心

日志备份开了就别关,全备增量备份你要写个计划任务

1 个赞

是不是恢复的时候必须要关日志备份

日志备份开了之后就会一直备份,然后你定期进行全备,全备完成之后,之前的全备和日志备份就可以删除掉了。。。

1 个赞

懂了大佬。还有个问题,br日志备份恢复是不是只能在新环境恢复,我刚才测试只有在没有的集群中才能恢复。

日志备份必须基于全备的基础上才能恢复,例如你日志备份从1号开始持续进行备份,3号备份全量数据,5号备份全量数据,7号备份全量数据,然后你想恢复到6号的数据,就需要先用5号的全备恢复,然后指定日志备份恢复到6号即可。

我测试恢复,它提示数据库不能有相同的库名才能执行,是不是相当于新环境才能日志恢复呀

需要清空数据或者新环境恢复

好的谢谢。

PITR前要先检查全备位点和日志位点
全量备份位点
br validate decode --field=“end-version” --storage “local:///backup/full”| tail -n1
日志备份位点
br log metadata --storage ‘local:///backup/log/’
全备位点到要恢复到的位点之间日志需要连续