---
title: 挂载对象存储目录，对象存储报错 -4103(OB_CHECKSUM_ERROR) 的原因和解决方法-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 挂载对象存储目录，对象存储报错 -4103(OB_CHECKSUM_ERROR) 的原因和解决方法相关的常见问题和使用技巧，帮助您快速解决 挂载对象存储目录，对象存储报错 -4103(OB_CHECKSUM_ERROR) 的原因和解决方法的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 挂载对象存储目录，对象存储报错 -4103(OB_CHECKSUM_ERROR) 的原因和解决方法

更新时间：2025-05-22 06:56

适用版本： V4.2.x、V4.3.x 内容类型：Troubleshoot  

## 问题现象

OceanBase 数据库 V4.x 版本挂载对象存储路径，报错 -4103 导致报错失败。

关键日志信息（其中对象存储侧可以获取 RS 日志中返回的 `aos_ret->error_msg=NULL, aos_ret->req_id=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx`，进行排查）。

```shell
[2024-07-26 18:22:51.187960] WDIAG get_oss_file_meta (ob_storage_oss_base.cpp:625) [25514][T1_L0_G0][T1][xxxxx-xxxxx-xxxxx-xxxxx] [lt=15][errcode=0] fail to head object(bucket_ob_string=ob6a-backup, object_ob_string=6aarchive/check_file, ret=0)
[2024-07-26 18:22:51.187977] WDIAG print_oss_info (ob_storage_oss_base.cpp:673) [25514][T1_L0_G0][T1][xxxxx-xxxxx-xxxxx-xxxxx]] [lt=15][errcode=0] oss info (aos_ret->code=404, aos_ret->error_code=UnknownError, aos_ret->error_msg=NULL, aos_ret->req_id=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx, delay_time=, oss_account_.oss_domain_=http://xxxx.xxxx.com.cn:8060, oss_endpoint_=http://xxxx.xxxx.com.cn:8060, oss_account_.oss_id_=xxxxxx)
[2024-07-26 18:22:51.246803] INFO  mk_parent_dir (ob_backup_io_adapter.cpp:246) [25514][T1_L0_G0][T1][xxxxx-xxxxx-xxxxx-xxxxx]] [lt=15] found parent dir(i=38, path="oss://ob6a-backup/6aarchive/check_file")
[2024-07-26 18:22:51.250484] WDIAG write (ob_storage_oss_base.cpp:2288) [25514][T1_L0_G0][T1][xxxxx-xxxxx-xxxxx-xxxxx]] [lt=16][errcode=-4103] fail to upload one object(bucket_=ob6a-backup, object_=6aarchive/check_file/1002_connect_file_20240726T182251.obbak, ret=-4103)
[2024-07-26 18:22:51.250504] ERROR issue_dba_error (ob_log.cpp:1875) [25514][T1_L0_G0][T1][xxxxx-xxxxx-xxxxx-xxxxx]] [lt=17][errcode=-4388] Unexpected internal error happen, please checkout the internal errcode(errcode=-4103, file="ob_storage_oss_base.cpp", line_no=669, info="oss info ")
[2024-07-26 18:22:51.250564] EDIAG print_oss_info (ob_storage_oss_base.cpp:669) [25514][T1_L0_G0][T1][xxxxx-xxxxx-xxxxx-xxxxx]] [lt=58][errcode=-4103] oss info (aos_ret->code=400, aos_ret->error_code=InvalidDigest, aos_ret->error_msg=NULL, aos_ret->req_id=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx, delay_time=, oss_account_.oss_domain_=http://xxxx.xxxx.com.cn:8060, oss_endpoint_=http://xxxx.xxxx.com.cn:8060, oss_account_.oss_id_=xxxxxx) BACKTRACE:0x13523f5c 0x582be45 0x58fb20b 0x58fad6f 0x7bffd9c 0x593754d 0x12fb0e72 0x12fbb306 0x12f8547e 0x12fe0728 0x11bf4de2 0x11cb27d6 0x11be0d50 0x11cb4c03 0x11d1134d 0x11d0985c 0x9570251 0xae196c9 0x5960cf5 0x548628c 0x546b0b4 0xa715284 0x137ddb00 0x7f82b9b0ff2b 0x7f82b9a476bf
[2024-07-26 18:22:51.250678] WDIAG [STORAGE] write (ob_storage.cpp:1822) [25514][T1_L0_G0][T1][xxxxx-xxxxx-xxxxx-xxxxx]] [lt=113][errcode=-4103] failed to write(ret=-4103)
[2024-07-26 18:22:51.250685] WDIAG write (ob_object_device.cpp:699) [25514][T1_L0_G0][T1][xxxxx-xxxxx-xxxxx-xxxxx]] [lt=7][errcode=-4103] fail to do overwrite write!(ret=-4103)

```

## 关键诊断信息

### 触发条件

用户自建对象存储不支持 MD5 或不符合 MD5 标准，无法进行日志归档和数据备份。

### 事前巡检

可以先通过 ob_admin 来测试是否能够正常读写，具体用法参见：[test_io_device](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000001431762)。

### 事后诊断

如果设置备份目的端时报错 -4103，或者日志里有 `content md5 length is incorrect`，则触发了该问题。

## 问题原因

OceanBase 数据库 V4.x 版本的 OBServer 备份文件，在上传至对象存储时会带 MD5 验证，若对象存储不支持 MD5 验证则会报错 -4103。

#### 说明

上传涉及的对象存储接口：

- oss_do_upload_part_from_buffer
 - oss_append_object_from_buffer
 - oss_put_object_from_buffer

上传涉及的 S3 接口：

- PutObject
 - UploadPart

## 问题的风险及影响

无法进行日志归档和数据备份。

## 影响租户

影响 OceanBase 数据库中的 Oracle 租户和 MySQL 租户，对于 SYS 租户无影响。

## 影响版本

OceanBase 数据库 V4.2.1 BP7（oceanbase-4.2.1.7-107000112024052920）及之后版本、V4.2.3（oceanbase-4.2.3.0-100000052024041220）及之后版本、V4.3.0（oceanbase-4.3.0.0-100000072024020200）及之后版本。

## 解决方法

升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库 V4.2.1 BP10（oceanbase-4.2.1.10-110000072024111216）及之后版本、V4.2.5（oceanbase-4.2.5.0-100000082024102022）及之后版本、V4.3.3 GA（oceanbase-4.3.3.0-100000362024093001）及之后版本。

## 规避方式

- 对于当前版本的 OBServer，在第一次进行归档/备份/恢复之前先使用 ob_admin 测试能否正常读写备份介质，见本文 **事前巡检** 这一小节。
 - 如果当前版本的备份恢复是正常的，建议不要升级到有问题的版本（V4.2.1 BP7 ~ BP9，V4.2.3 ~ V4.2.4，V4.3.0 ~ V4.3.2）。
 - 如果无法通过测试，并确定是 MD5 的兼容性问题，则升级到指定版本，然后再发起归档/备份/恢复。

上一篇

[排查 OceanBase 数据库 V4.x 版本中日志问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000988452)

下一篇

[OceanBase 数据库出现 write log cost too much time(ret=-4389 的原因](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000003961004) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
