TIDB使用br备份+恢复报错

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】5.4.3
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
1、 tidb集群使用tidb角色搭建
2、该集群有三个tikv服务,都为tidb角色755访问权限
3、br命令运行节点为pd节点,和tikv不在同一台机器,使用br 执行报错:

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】





每个tikv上都有/data/dbbackup这个目录吗,权限再确认下

16.7上有挂载备份目录么?

有的,如下:



16.7是tikv节点, 数据存储在/data/tidb下, 然后我在每个tikv节点机器上都建了一个/data/dbbackup的备份目录

备份命令发出来看看。 或者尝试用挂载的方式备份试试。

之前刚遇到因为命令里写的文件目录和实际建的不一致,导致的备份失败。

备份命令:/data/tidb/br backup db --db test --pd “10.11.x.x:2379” -s “local:///data/dbbackup/Onedb_20241121” --log-file backupfull.log

这个文件夹也是要提前在每个节点上创建好的。

tikv节点我没有创建, 我试一下

每个tikv节点建好了, 备份成功了,感谢

有什么方法能让br在执行的时候自动创建吗

没有办法。我们是在定时任务里去创建的,先创建目录,然后再执行br命令。

好的,只能这样了

并不需要单独建立文件夹
我这样跑的脚本也会备份到不同文件夹
BAKDATE=$(date +%Y%m%d)
/root/.tiup/components/br/v7.5.2/br backup full --pd 192.168.19.202:2379 --storage local:///nfs/$BAKDATE --log-file /nfs/br$BAKDATE.log --concurrency=10

:thinking:这个 $BAKDATE 文件夹不需要提前创建?

不需要,就是用当前日期命名的文件夹,会自动建

这是挂载的?上面题主用的是本地备份,没有用挂载。 按说挂载的也不会自动创建吧。奇怪~

求助:备份成功后我把备份目录传到新的TIDB节点恢复报错了, 我恢复的时候把三个tikv的备份数据和backup.lock,backupmeta放在同一个目录里面:


执行新集群恢复命令:
/tidb-deploy/tidb-toolkit-v5.4.3-linux-amd64/bin/br restore db --pd “10.12.33.156:2379” --db “test” --ratelimit 128 --storage “local:///home/rong/tidbbackup_20241126” --log-file restoredb.log
报错信息:

现在是库表结构恢复成功了, 但是表里面没有数据

补充:新集群恢复数据大小截图:

真实线上备份库表大小截图:

从文档中找到了:

1 个赞