TIDB数据库备份还原问题,表结构还原,无表数据。

【 TiDB 使用环境】测试环境
【 TiDB 版本】V8.1.0

TIDB备份成功运行还原命令,
tiup br restore db -s “local:///opt/back1013” --pd “192.168.1.243:2379” --db test --log-file backuptable1701.log
经过测试,只能在原有数据库进行操作,新建 立一个空库无法进行还原。

出现的问题 :我在test数据库中删除所有表结构,变成一个空库,运行还原命令,数据库结构已还原成功,但是表中的数据未还原,这块是哪里的问题 ?

有什么日志信息没有

[2024/06/12 17:12:56.711 +08:00] [INFO] [collector.go:77] [“Database Backup success summary”] [total-ranges=1] [ranges-succeed=1] [ranges-failed=0] [backup-checksum=12.874806ms] [backup-fast-checksum=612.781µs] [backup-total-ranges=2] [backup-total-regions=2] [total-take=4.498950966s] [total-kv=3] [total-kv-size=138B] [average-speed=30.67B/s] [backup-data-size(after-compressed)=1.801kB] [Size=1801] [BackupTS=450411514701283329]
root@yiduo-VirtualBox:~# tiup br restore db -s “local:///opt/back1013” --pd “192.168.1.243:2379” --db test --log-file backuptable1701.log
Checking updates for component br… Timedout (after 2s)
Starting component br: /root/.tiup/components/br/v8.1.0/br restore db -s local:///opt/back1013 --pd 192.168.1.243:2379 --db test --log-file backuptable1701.log
Detail BR log in backuptable1701.log
DataBase Restore <--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 100.00%
[2024/06/12 17:15:26.060 +08:00] [INFO] [collector.go:77] [“DataBase Restore failed summary”] [total-ranges=1] [ranges-succeed=0] [ranges-failed=1] [split-region=369.652µs] [restore-ranges=1] [unit-name=file] [error="Cannot read local:///opt/back1013/1/139326_160_95267b81c5cc673196738318ace6fbc310cb9a12248f346dfb6bbe12bc57ccfc_1718183576724_write.sst into /tidb-data/tikv-20162/import/.temp/aed8f965-688a-4302-90ba-d7fcc095899f_158048_153_161_write_2.sst: No such file or directory (os error 2): [BR:KV:ErrKVDownloadFailed]download sst failed; Cannot read local:///opt/back1013/1/139326_160_95267b81c5cc673196738318ace6fbc310cb9a12248f346dfb6bbe12bc57ccfc_1718183576724_write.sst into /tidb-data/tikv-20162/import/.temp/1b1f3416-d4f8-470d-8dfb-f1d96532bb50_158048_153_161_write_2.sst: No such file or directory (os error 2): [BR:KV:ErrKVDownloadFailed]download sst failed; Cannot read local:///opt/back1013/1/139326_160_95267b81c5cc673196738318ace6fbc310cb9a12248f346dfb6bbe12bc57ccfc_1718183576724_write.sst into /tidb-data/tikv-20162/import/.temp/1325de64-b412-48f8-b63a-c8fb45147cee_158048_153_161_wr
省略中间部分************
:KV:ErrKVDownloadFailed]download sst failed; Cannot read local:///opt/back1013/1/139326_160_95267b81c5cc673196738318ace6fbc310cb9a12248f346dfb6bbe12bc57ccfc_1718183576724_write.sst into /tidb-data/tikv-20162/import/.temp/287904c0-fc7c-4489-b7db-38cd609ec755_158048_153_161_write_2.sst: No such file or directory (os error 2): [BR:KV:ErrKVDownloadFailed]download sst failed; Cannot read local:///opt/back1013/1/139326_160_95267b81c5cc673196738318ace6fbc310cb9a12248f346dfb6bbe12bc57ccfc_1718183576724_write.sst into /tidb-data/tikv-20162/import/.temp/adef9b6d-520d-438a-a4cd-b2b2c39eb648_158048_153_161_write_2.sst: No such file or directory (os error 2): [BR:KV:ErrKVDownloadFailed]download sst failed; Cannot read local:///opt/back1013/1/139326_160_95267b81c5cc673196738318ace6fbc310cb9a12248f346dfb6bbe12bc57ccfc_1718183576724_write.sst into /tidb-data/tikv-20162/import/.temp/c23d3935-2b74-4812-aef7-aac3723c6301_158048_153_161_write_2.sst: No such file or directory (os error 2): [BR:KV:ErrKVDownloadFailed]download sst failed

download sst failed; Cannot read
兄弟,是不是不能访问你的备份的数据文件,你看一下

省略中间部分,一直在报
[BR:KV:ErrKVDownloadFailed]download sst failed; Cannot read

这是我刚刚备份成功的目录 啊,备份成功,我就再运行还原,有问题 ? 那我从哪方面查呢?

网络和权限这二块可以看一下。
对比一下备份到不同数据库的环境有什么不同的地方

今天早上又试了一下还原,成功了。 什么操作都没有。

查看备份的文件,在192.168.1.243上备份目录下有文件,192.168.1.233备份目录下有个.sst文件。

重新操作,删除两个服务器下的文件,重新备份。

出现效果不一样了,192.168.1.233备份目录下为空,而192.168.1.243下多了一个11的文件夹,里面放.SST文 件。然后我再进行还原,又失败了。

我在想是不是权限问题 ,如下图,为什么我用root运行备份命令,为什么11的文夹备份下来是tidb用户组,而其它文件是root用户组。 如果是这样,我要用root还原的话,应该就是访问的问题 ,那疑问点就来了,我运行还原命令,后台真正运行的是哪个用户,这些文件权限我该如何处理?

是不是local指定的文件夹不是NFS啊,或者没合并啊

登陆中控机的用户是不是一样的?还原成功的时候和失败的时候?

或者是放数据文件的服务器目录没有对登陆中控机的用户赋访问权限

你现在所有的tikv节点再一个机器上吗?

你把环境描述下,有几个tikv,是不是部署到同一个机器上,还原怎么的环境啥样的

刚使用相同的方法,在其它环境测试了。
1个PD、3个KV 都安装在一台服务器上,使用相同的测试方法,可以正常备份,正常还原。

现在还未找出两台集群的这种问题。

我的测试方法是,先建立一个库,建表结构,插入数据。 然后备份。
手动删除表结构、数据,使用当前库成为一个空库。 运行还原命令。 显示效果就是上面的权限问题。

br备份每个tikv上都有一份数据,合并起来才是全部的,恢复时候每个tikv需要能访问到合并的数据,你看看是否做到了

这个问题还是比较难的,不太懂