br 备份报错s3 bucket and region are not matched

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.0
【复现路径】br backup full
【遇到的问题:问题现象及影响】 备份失败 报错提示 s3 bucket and region are not matched

[2023/05/22 11:06:57.761 +08:00] [INFO] [collector.go:73] [“Full Backup failed summary”] [total-ranges=0] [ranges-succeed=0] [ranges-failed=0]
Error: s3 bucket and region are not matched, bucket=db-back, input region=hazz, real region=us-east-1
【资源配置】
【附件:截图/日志/监控】
之前br v5.2.1 版本 tidb 也是v5.2.1 版本 备份没有问题 现在br 已经更新到v6.5.0 和v7.0.0 版本都报这个错误
密钥等信息 脚本里面写的 没有问题

br backup full --send-credentials-to-tikv=true --pd 10.30.30.3:2379 --storage s3://db-back/tidb-back/20230522 --s3.endpoint http://oss-hazz.aliyun.cn --s3.region hazz --ratelimit 32 --log-file 20230522_backupfull.log

报错为什么会提示 real region=us-east-1 这个是美国东部?

这个错误提示是因为您指定的 S3 bucket 所在的 region 和您输入的 region 不匹配。请您检查您的输入是否正确,确保您输入的 region 和您的 S3 bucket 所在的 region 一致。

如果您使用的是 AWS 官方的 S3,需要您指定 region 且不需要指定 s3.endpoint。如果是使用兼容 S3 协议的对象存储服务,需要同时指定 s3.endpoint 和 region。

您可以通过以下命令指定 S3 bucket 所在的 region:

./br backup full --pd "pd_ip:pd_port" --storage "s3://bucket_name/dir" --s3.region "us-east-1"

其中,--s3.region 参数指定了 S3 bucket 所在的 region,您需要将其替换为您的 S3 bucket 所在的 region。

使用的是天翼云 上面备份的命令里面已经指定了 --s3.endpoint --s3.region 之前都可以的 升级br 版本 不行了,报错提示的 real region=us-east-1 我都不知道哪里来的 我指定的参数不应该是使用我指定的参数么 怎么还出来个real region 完全找不到北了

同样的参数 使用br:v5.2.1 会提示version mismatch
添加–check-requirements=false 运行就可以备份

和这个帖子 基本一样的 br备份数据到ks3存储报错 尝试过br v6.5.4 v6.5.0 v7.0.0 都不行 肯定是工具问题,br v5.2.1 添加上–check-requirements 参数就可以备份

s3配置的对嘛

S3所在Region名称写得不对吧

用低版本的v5.2.1可以 高版本 v6.5.0 v6.5.4 v7.0.0 v7.3.0 br 都不行
·bucket 桶和region 都调整过很多参数 一直报错y
s3 配置应该是对的 低版本都可以的 而且也和天翼云沟通过了

br 这个工具指

这个是否6.5已经修复,感觉我这个就是这个原因,不填写s3.region 他就报这个错

Error: failed to get region of bucket db-back: BadRequest: Bad Request
status code: 400, request id: 0bccf13a128a4bc371d2dbecdfe8eaf0afb1b6a5a7a9abadaf, host id:

哎,为了省一个可配置参数。。。

这个帖子

感觉是你的配置有问题,阿里云这三个参数就足够了

--storage="s3://mysql-dts-migrate/***?access-key=*********&secret-access-key=*****" \
--s3.endpoint="https://oss-cn-shenzhen-internal.aliyuncs.com"  \
--s3.provider "alibaba"

你不指定s3.region 他就会自己去查
Error: failed to get region of bucket db-back: BadRequest: Bad Request
你指定他还是去查 和你指定的比较 不对还是报错

我这个是天翼云的 不太清楚他怎么获得的real region 是us-east-1 我指定的他不用 非要自己去取这个值 取回来的似乎还不对要么就是不支持获取

天翼云没用过,可以试下加下参数&force-path-style=false,看还报错不

  • force-path-style:使用路径类型 (path-style),而不是虚拟托管类型 (virtual-hosted-style),默认为 true

历史原因,S3类存储有两种路径方式,默认是path-style模式,但是其他厂商的S3存储不一定支持,可以设置为false后继续尝试一下

看你这里写的是aliyun.cn?这个不是天翼云的endpoint吧??

这个6.5已经修复了,我现在用6.5.3的BR备份是正常的。

我修改了 下 实际是天翼云的

&force-path-style=false 添加这个还是报错 只要是不添加–s3.region 他就会自己去获取region 他的请求也没看到拼的是什么 请求查询region 天翼云格式估计天翼云不支持
Error: failed to get region of bucket db-back: BadRequest: Bad Request

br v6.5.5 版本可以备份了, 6.5.1 6.5.3 6.5.4 版本都不行