首批通过分布式安全可靠测评,为关键业务系统打造
数据备份过程中无法正常识别杉岩对象存储尽管 S3CMD 测试成功但 OB_ADMIN 测试失败的原因和解决方法
更新时间:2026-05-11 09:51
问题现象
在配置 OceanBase 数据库的数据备份设备时,尝试连接杉岩对象存储,虽然通过 S3CMD 工具能够正常上传下载文件,但是使用 OB_ADMIN 命令进行连通性测试时失败,提示可能是因为缺少权限导致的问题(-9116)。
关键信息
使用 OB_ADMIN 命令测试连通性失败。
错误提示与权限相关,但实际上权限配置正确。
使用 S3CMD 工具测试连通性成功。
使用 AWSCLI 工具测试连通性也成功。
问题原因
问题是由于 AWS S3 SDK 的 URL 默认编码行为与杉岩对象存储不一致而产生的,属于设计层面已知的兼容性问题。由于多个公有云对象存储(如京东云、腾讯云)也提供了 S3 兼容接口,在使用 AWS S3 SDK 访问这些对象存储时也可能存在类似的编码差异,此时可采用相同的解决办法。
问题的风险及影响
无风险。问题仅影响到备份恢复功能的测试,不会对现有数据造成任何损害或丢失。
适用版本
OceanBase 数据库所有版本。
解决方法
修改
ob_storage_s3_url_encode_type配置项。ALTER SYSTEM SET ob_storage_s3_url_encode_type='compliantRfc3986Encoding';修改后更换新目录,重新发起备份。
在使用 OB_ADMIN 命令进行测试时,如果遇到与权限相关的错误提示,即使权限配置正确,也请尝试加上
-e 'compliantRfc3986Encoding'选项重新测试。
规避方式
逐字符检查
access_id和access_key是否正确输入。确认 host 字段是否使用了正确的格式,如果是 IP+端口的形式,请确保使用
http://前缀。当使用 OB_ADMIN 命令进行备份恢复功能测试时,优先加上
-e 'compliantRfc3986Encoding'选项,以适应杉岩对象存储与 S3 SDK 之间的 URL 编码差异。