恢复找不到NoSuchKey: The specified key does not exist.

【 TiDB 使用环境】生产环境
【 TiDB 版本】8.1.1
路径为:otidb-backup-1275/test/20241129/restockin


恢复命令为

/root/.tiup/components/br/v8.1.1/br restore table --pd “10.50.xx.xx:2379” --db “sc_restocking” --table “mapping_warehouse” --storage “s3://otidb-backup-1275/test/20241129/restockin?access-key=${access}&secret-access-key=${secret}” --s3.provider tencent --s3.endpoint "http://otidb-backup-1275/test/20241129/restockin.cos.ap-guangzhou.myqcloud.com

提示:
Error: load backupmeta failed: failed to read s3 file, file info: input.bucket=‘otidb-backup-1275/test/20241129/restockin’, input.key=‘test/20241129/restockin/backupmeta’: NoSuchKey: The specified key does not exist.
status code: 404

但是实际检查 这个路径下是有这个文件的backupmeta

input.bucket=‘otidb-backup-1275/test/20241129/restockin’, input.key=‘test/20241129/restockin/backupmeta’

感觉桶的名字没错,但是key的名字前面带了一串路径是错误的原因。

最简单直接的办法是参考备份时候的命令, 能备份上去,就应该能恢复下来。

如果找不到备份命令了,值得尝试的地方就是

–s3.provider tencent --s3.endpoint "http://otidb-backup-1275/test/20241129/restockin.cos.ap-guangzhou.myqcloud.com

改成

--s3.provider alibaba
--s3.endpoint "http://cos.ap-guangzhou.myqcloud.com"

试试看。