BR备份数据过程中的一些疑问

【TiDB 版本】v4.0.10 【BR版本】v4.0.10
在使用BR进行备份的过程中有一些问题在FAQ中也无法找到答案,这里发出来请大佬们帮忙验证下。

问题1:备份时指定ratelimit无效?



如上所示,备份指定ratelimit为120MB/s,实际速度为1935.13/3 MB/s,集群只有3个tikv节点。

问题2:备份时会切换pd leader吗?
在备份日志中看到一些切换pd leader的日志,本次备份是在pd leader执行的,所以日志是:
[INFO] [base_client.go:252] [“[pd] switch leader”] [new-leader=http://<执行br指令的pd>:2379] [old-leader=]

问题3:增量备份对gc safepoint有要求?
这样的话要求增备的频率高于tikv_gc_run_interval。但这里有两个问题:一是全备过程中br是否会主动调整gc,以满足一致性的备份要求(没看到相关日志)。二是全备持续时间很长的话,之后进行增倍是否会因为当前gc safepoint大于LAST_BACKUP_TS而失败,我现在理解的全备LAST_BACKUP_TS是指备份开始时间。

  1. ratelimit 不生效是一个已知的问题,目前应该还在优化中,参考下:https://github.com/pingcap/br/issues/1007;

  2. 备份时正常不会导致 pd leader 发生切换,可以看下具体的 pd/tikv 日志,看下是否是其他原因导致的;

  3. 增量备份要求 GC safepoint 必须在 lastbackupts ,这样才能保证和上次的备份数据续接上,BR 备份时应该不会去自动调整 GC。

Hi zhengyang,感谢回复!
关于问题2,后边在非leader节点测试后发现只是打印日志中有switch leader的关键字,实际并未切换。
关于问题3,还是有些疑问,目前可知的是全备会把备份开始的ts作为BackupTS,这也是增备要使用的 lastbackupts,如果全备持续时间大于gc保留时间的话,全备完毕后进行的增备可能因为执行gc导致BackupTS之后的更改丢失(即safepoint大于lastbackupts),这就要求全备期间增倍任务也照常跑,请问是这样吗。

刚才确认了下, BR 在备份期间会将 backupTS 作为 safePoint 注册到 pd 上,在全备期间 safePoint 不会继续推进,所以不需要在全备期间进行增量任务;不过现在 BR 增量备份不太成熟,靠谱点的方式还是把 GC 时间设置为一个较大的范围,覆盖到全备和增备之间的时间间隔。

明白啦,感谢!

不客气哈~ :grinning: