br restore 恢复提示找不到sst文件

tidb 5.0.3
br 是5.0.6

备份是成功完成的:

[2022/07/17 16:59:27.778 +08:00] [INFO] [client.go:1043] [“checksum success”] [database=sdhz_rpt] [table=#tableau_1946_sid_887200bb_4_group]
[2022/07/17 16:59:27.778 +08:00] [INFO] [client.go:1043] [“checksum success”] [database=sdhz_rpt] [table=rpt_hz_follow_info_d]
[2022/07/17 16:59:27.779 +08:00] [INFO] [client.go:1043] [“checksum success”] [database=sdhz_rpt] [table=rpt_sdb_ss_contact_trans_d]
[2022/07/17 16:59:27.818 +08:00] [INFO] [client.go:225] [“save backup meta”] [path=local:///data0/full_bak] [size=27003534]
[2022/07/17 16:59:27.837 +08:00] [INFO] [client.go:510] [“[pd] exit tso dispatcher”] [dc-location=global]
[2022/07/17 16:59:27.838 +08:00] [INFO] [client.go:510] [“[pd] exit tso dispatcher”] [dc-location=global]
[2022/07/17 16:59:27.838 +08:00] [INFO] [collector.go:67] [“Full backup success summary”] [total-ranges=3242] [ranges-succeed=3242] [ranges-failed=0] [backup-fast-checksum=937.544344ms] [backup-checksum=12m45.788892029s] [backup-total-ranges=3242] [total-take=51m13.727171783s] [BackupTS=434646625601454081] [total-kv=4765129225] [total-kv-size=1.176TB] [average-speed=382.7MB/s] [“backup data size(after compressed)”=250GB]

备份恢复命令:

nohup /opt/software/tidb-toolkit-v5.0.6-linux-amd64/bin/br restore full --pd 10.100.2.55:2379 -s local:///data0/new_fullbak/full_bak --ratelimit 128 --log-file backupfull2022_recover1.log > /tmp/br_tidb_rpt2022_recover1.log 2>&1 &

恢复的时候报这种错误,看报错挺明显,下载不到备份的sst 文件:
[“br failed”] [error="No such file or directory (os error 2): [BR:KV:ErrKVDownloadFailed]download sst failed; No such file or directory

全量的备份数据:

(属主:tidb mod:777, 属主:root mod:777 两种都试过了)
1 用nfs,mount共享目录到(tikv4个节点)本地,报上边这种错误。
2 拷贝到集群所有tikv节点的本地(全量备份),也是上边这种报错。

详细的见附件:
backupfull2022_recover1.log (1.3 MB)

/data0/new_fullbak 是一个挂载在 nfs share 上的 dir 么?
所有的tikv/tidb/pd 都挂载了这个 nfs share么?

/data0/full_bak挂载目录。
现在/data0/new_fullbak/full_bak 这个目录拷贝到tikv(4个节点,全量备份)本地了。没有解决问题。

https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-use-cases#将单表数据备份到本地磁盘推荐测试环境试用:~:text=TiKV%20和%20backup_endpoint%20节点需要有相同的备份目录,例如%20/home/tidb/backup_local。
参考这个试一下呢?

  • TiKV 和 backup_endpoint 节点需要有相同的备份目录,例如 /home/tidb/backup_local
    因为backup_endpoint 节点需要放backupmeta

是按照文档的要求操作的
备份机:

tikv4台机器:




https://docs.pingcap.com/zh/tidb/stable/backup-and-restore-faq#br-遇到-permission-denied-或者-no-such-file-or-directory-错误即使用-root-运行-br-也无法解决该如何处理:~:text=实验特性)。-,BR%20遇到%20Permission%20denied%20或者%20No%20such%20file%20or%20directory%20错误,即使用%20root%20运行%20BR%20也无法解决,该如何处理?,-需要确认%20TiKV
试一下这个 guide 呢

1 个赞

按照这个check了一遍,没发现不一样的。难道是我copy的时候丢包,cp过程中导致某个sst文件不完整。我之前nfs没有备份成功,就备份到各个tikv本地了,然后cp到nfs上,恢复的时候走的是nfs。
我重新nfs的方式备份一遍。 等会儿备份完,再试试。

1、拷贝到四个tikv的目录都是local:///data0/new_fullbak/full_bak么?
2、用什么角色拷贝的?有没有可能是操作用户没有目录的读写权限。

1 四个目录都是 local:///data0/new_fullbak/full_bak
2 root 用户拷贝的,然后我把属主改成了tidb用户。chown tidb:tidb -R /data0/new_fullbak/full_bak

[2022/07/18 02:06:47.921 +08:00] [INFO] [client.go:614] [“import files done”] [files="{total=2,files="[11585778_302143638_206841_f5418051facea0901fd4ffdc853637e9d387f2e7813fe227f6de454f4bd68e68_1658046521336_default.sst,11585778_302143638_206841_f5418051facea0901fd4ffdc853637e9d387f2e7813fe227f6de454f4bd68e68_1658046521336_write.sst]",totalKVs=211453,totalBytes=87346807,totalSize=19067398}"] [take=35.424533098s]
[2022/07/18 02:06:47.921 +08:00] [INFO] [client.go:614] [“import files done”] [files="{total=2,files="[4_302123137_206841_c8b363e0813f2175187dd77c0a148cfbb7d4545afa519d932ba75973311aad56_1658046520346_default.sst,4_302123137_206841_c8b363e0813f2175187dd77c0a148cfbb7d4545afa519d932ba75973311aad56_1658046520346_write.sst]",totalKVs=211263,totalBytes=87359006,totalSize=19065948}"] [take=35.424524611s]

日志里的文件和你截图里的文件貌似有些出入啊,感觉是找这些文件没有找到啊
11585778_302143638_206841_f5418051facea0901fd4ffdc853637e9d387f2e7813fe227f6de454f4bd68e68_1658046521336_default.sst,
11585778_302143638_206841_f5418051facea0901fd4ffdc853637e9d387f2e7813fe227f6de454f4bd68e68_1658046521336_write.sst
4_302123137_206841_c8b363e0813f2175187dd77c0a148cfbb7d4545afa519d932ba75973311aad56_1658046520346_default.sst,
4_302123137_206841_c8b363e0813f2175187dd77c0a148cfbb7d4545afa519d932ba75973311aad56_1658046520346_write.sst

1 个赞

我只截了5个,有2千sst文件。

按nfs的方式备份完后,restore 还是同样的报错。
备份成功截图:

恢复失败Log:
backupfull2022_recover6.log (4.4 MB)

找到原因了,我的问题,nfs共享目录没有挂载到 tiflash节点。
备份的时候不需要挂载,还原的时候需要。难怪还原的时候总是报 not found sst 。 备份的时候没事儿。

https://docs.pingcap.com/zh/tidb/v5.0/backup-and-restore-use-cases
感谢各位大佬的帮助!:pray::pray::pray:

1 个赞

:+1: 解决了就好

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