关于OB使用S3存储进行备份的问题

测试一下bucket域名, 注意,这里bucket也是host的一部分,e.g:
curl -v http://s3-49999-long-data-all-test.s3.cn-north-1.amazonaws.com.cn

curl -v bucket-name.host

老师,是这样吗

好的谢谢

要看你创建的bucket名字是什么了?如果是这个,你这里不通是有问题的

老师,如图
image

是的,这里看到的是bucket,日志报错 Curl returned error code 28 表示服务器在接收完整响应之前意外关闭了连接。这可能是由以下原因引起的:

  1. S3存储桶未正确配置或配置错误。
  2. S3存储桶策略或CORS配置不允许公共访问存储桶中的对象。
  3. 存在网络或代理问题,导致连接中断。
  4. S3存储桶中对象的大小太大,curl命令无法一次下载整个对象。

需要针对性排查下

/home/admin/oceanbase/log/rootservice.log.20241106162959927:[2024-11-06 16:27:21.193880] WDIAG Log (ob_storage_s3_base.cpp:68) [3496528][T1_L0_G0][T1][YB4209100008-000624AC940481C8-0-0] [lt=
50][errcode=-9105] [S3] module=CurlHttpClient, msg=Curl returned error code 28 - Error

[lt=12][errcode=-9105] S3 info(request_id="", code=-1, exception="", err_msg=“curlCode: 28, Error”)
/home/admin/oceanbase/log/rootservice.log.20241106162959927:[2024-11-06 16:27:41.211122] WDIAG do_list_ (ob_storage_s3_base.cpp:1049) [3496528][T1_L0_G0][T1][YB4209100008-000624AC940481C8-0-
0] [lt=21][errcode=-9105] failed to list s3 objects(ret=-9105, bucket=obbackup, object=fhxt/, max_list_num=1000, delimiter=NULL)

obbackup/fhxt/
fhxt目录的权限对么

老师,有推荐的排查方法吗

老师,目录正确的权限应为?

  1. 验证S3存储桶是否已正确配置并具有正确的权限。权限可以参考这个帖子
    有备份使用S3(华为云OBS)配置成功的吗? - #6,来自 旭辉

  2. 检查S3存储桶策略和CORS配置,以确保它们允许公共访问存储桶中的对象。

  3. 从不同的网络或代理测试对S3存储桶的连接,以查看问题是否与当前网络环境有关。

  4. 将对象分成较小的块,并尝试使用curl分别下载每个块。这将有助于您确定问题是否与对象的大小有关。

  5. 增加--retry-connrefused选项的值,将其提高到10等更高的数字,以给curl更多的尝试建立连接的机会,然后再放弃。

例如,您可以使用以下命令从S3存储桶下载对象:
curl -O -v -L --retry 10 --retry-connrefused https://s3-example-bucket-name.s3.amazonaws.com/example-object-key

老师,

其它几种方式也排查下,或者用这个存储路径备份其它数据库是否可以成功?

老师,可以正常上传对象至子目录,从子目录下载对象

这里是使用的AWS S3还是兼容 S3 协议的对象存储,如OBS 和 GCS等?

老师,不是上述所说产品
只是一款兼容S3协议的存储

你前面直接访问域名是ok的,访问curl -v bucket-name.host 不通,问题就在这里,因为访问的是存储设备不只是域名,你可以咨询下这个存储的技术看看

好的

老师,path的方式可以吗
curl -v host/backet-name

421BP9开始支持这种方式