---
title: OceanBase 数据库 V3.x 事务回放报错 replay commit log error(ret=-4103, ret=&quot;OB_CHECKSUM_ERROR&quot;-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 数据库 V3.x 事务回放报错 replay commit log error(ret=-4103, ret=&quot;OB_CHECKSUM_ERROR&quot;相关的常见问题和使用技巧，帮助您快速解决OceanBase 数据库 V3.x 事务回放报错 replay commit log error(ret=-4103, ret=&quot;OB_CHECKSUM_ERROR&quot;的难题。
---
切换语言

- 简体中文
- English

划线反馈

# OceanBase 数据库 V3.x 事务回放报错 replay commit log error(ret=-4103, ret="OB_CHECKSUM_ERROR"

更新时间：2026-06-10 09:51

适用版本： V3.1.x、V3.2.x 内容类型：Troubleshoot  

## 问题现象

OceanBase 数据库 V3.x 事务回放报错 `replay commit log error(ret=-4103, ret="OB_CHECKSUM_ERROR"`，日志信息如下。

```shell
server.log.20250219130151858: [2025-02-19 12:58:41.466505] WDIAG [STORAGE.TRANS] ob_trans_par_ctx.cpp:4292 [76419][0][Y0-0000000000000000-0-0] [lt=20] [dc=0][errcode=-4103] replay commit log error (ret=-4103, ret="OB_CHECKSUM_ERROR", context={ObDistTransCtx::ObTransCtx:this:0x7f07e653bed0, ctx_type:2, trans_id:{hash:10512527056860699594, inc:16153037, addr:"xxx.xxx.xxx.34:2882", t:1739863618931915}, tenant_id:1004, is_exit:false, trans_type:2, is_readonly:false, trans_expired_time:1739883618866401, self:{tid:1103909674467337, partition_id:35, part_cnt:0}, state:{prepare_version:1739863948014479, state:1, cluster_version:12885033992, trans_need_wait_wrap:{receive_gts_ts:{mts:0}, need_wait_interval_us:0}, trans_param:{access_mode:1, type:2, isolation:1, magic:173616441138401520, autocommit:0, consistency_type:0(CURRENT_READ), read_snapshot_type:1(STATEMENT_SNAPSHOT), cluster_version:12885033992, is_inner_trans:1, can_elr:false, uref:1073741824, ctx_create_time:1739941040520107, for_replay:true}, scheduler:"xxx.xxx.xxx.34:2882", coordinator:{tid:1103909674456002, partition_id:1152921633724301601, part_idx:30, subpart_idx:289}, participants:[{tid:1103909674456002, partition_id:1152921633724301601, part_idx:30, subpart_idx:289}, {tid:1103909674456002, partition_id:1152921633724301605, part_idx:30, subpart_idx:293}, {tid:1103909674456002, partition_id:1152921633724301602, part_idx:30, subpart_idx:290}, {tid:1103909674456002, partition_id:1152921633724301604, part_idx:30, subpart_idx:292}, {tid:1103909674456002, partition_id:1152921633724301603, part_idx:30, subpart_idx:291}, {tid:1103909674456002, partition_id:1152921633724301606, part_idx:30, subpart_idx:294}, {tid:1103909674456002, partition_id:1152921633724301609, part_idx:30, subpart_idx:297}, {tid:1103909674456002, partition_id:1152921633724301610, part_idx:30, subpart_idx:298}, {tid:1103909674456002, partition_id:1152921633724301611, part_idx:30, subpart_idx:299}, {tid:1103909674456002, partition_id:1152921633724301612, part_idx:30, subpart_idx:300}, {tid:1103909674456002, partition_id:1152921633724301607, part_idx:30, subpart_idx:295}], {tid:1103909674456002, partition_id:1152921633724301608, part_idx:30, subpart_idx:296}, {tid:1103909674467337, partition_id:35, part_cnt:0}], request_id:-1, timeout_task:{is_inited:true, is_registered:false, is_running:false, delay:0}, ctx:0x7f07e653bed0, bucket_idx:-1, run_ticket:0, is_scheduled:false, prev:null, next:null}, xid:{grid_str:"", bqual_str:"", format_id:1, gtrid_str_ptr():{"data_size":0, data:""}, bqual_str_ptr():{"data_size":0, data:""}}, snapshot_version:-1, local_trans_version:-1, submit_log_pending_count:0, submit_log_count:0, stmt_info:{sql_no:0, msg_seq:0, start_task_cnt:0, end_task_cnt:0, need_rollback:false, task_info:{tasks:[]}}, global_trans_version:1739863948014479, redo_log_no:8596, mutator_log_no:9137, session_id:0, is_gts_waiting:false, part_trans_action:-1, timeout_task:{is_inited:true, is_registered:false, is_running:false, delay:0}, ctx:0x7f07e653bed0, bucket_idx:-1, run_ticket:0, is_scheduled:false, prev:null, next:null}, batch_commit_trans:false, batch_commit_state:0, is_dup_table_trans:false, last_ask_scheduler_status_ts:1739941040520107, last_ask_scheduler_status_response_ts:1739941040520107, ctx_dependency_wrap:{prev_trans_arr:[], next_trans_arr:[], prev_trans_commit_cnt:0}, preassigned_log_meta:{log_id:18446744073709551615, submit_timestamp:-1, proposal_id:{time_to_usec:-1, server:"0.0.0.0"}}, is_dup_table_prepare:false, dup_table_syncing_log_id:18446744073709551615, is_prepare_leader_revoke:false, is_local_trans:true, forbidden_sql_no:-1, is_dirty:true, undo_status:{undo_action_arr:[{undo_from:1739863645710336, undo_to:1739863619128028}]}, max_durable_seq_no:1739863801871250, max_durable_log_ts:1739863983393592, mt_ctx_get_checksum_log_ts():9223372036854775807, is_changing_leader:false, has_trans_state_log:false, is_trans_state_sync_finished:false, status:0, sp_user_request:-1, same_leader_batch_partitions_count:0, is_hazardous_ctx:false, mt_ctx_get_callback_count():0, in_xa_prepare_state:false, is_listener:false, last_replayed_redo_log_id:17737, status:0, is_xa_trans_prepared:true, min_log_id:2, min_log_ts:1739863620307977, is_redo_prepared:true, log={[log_type:4, partition:{tid:1103909674467337, partition_id:35, part_cnt:0}, trans_id:{hash:10512527056860699594, inc:16153037, addr:"xxx.xxx.xxx.34:2882", t:1739863618931915}, partition_log_info_arr:[{partition:{tid:1103909674456002, partition_id:1152921633724301601, part_idx:30, subpart_idx:289}, log_id:16255, log_times_tamp:1739863802218728}, {partition:{tid:1103909674456002, partition_id:1152921633724301602, part_idx:30, subpart_idx:290}, log_id:50031, log_timestamp:1739863802219687}, {partition:{tid:1103909674456002, partition_id:1152921633724301603, part_idx:30, subpart_idx:291}, log_id:18567, log_timestamp:1739863802212007}, {partition:{tid:1103909674456002, partition_id:1152921633724301604, part_idx:30, subpart_idx:292}, log_id:28040, log_timestamp:173986380222289}, {partition:{tid:1103909674456002, partition_id:1152921633724301605, part_idx:30, subpart_idx:293}, log_id:38565, log_timestamp:1739863802212007}, {partition:{tid:1103909674456002, partition_id:1152921633724301606, part_idx:30, subpart_idx:294}, log_id:63566, log_timestamp:1739863802212007}, {partition:{tid:1103909674456002, partition_id:1152921633724301609, part_idx:30, subpart_idx:297}, log_id:79260, log_timestamp:1739863802212007}, {partition:{tid:1103909674456002, partition_id:1152921633724301610, part_idx:30, subpart_idx:298}, log_id:93902, log_timestamp:173986380222289}, {partition:{tid:1103909674456002, partition_id:1152921633724301607, part_idx:30, subpart_idx:295}, log_id:39308, log_timestamp:173986380222289}, {partition:{tid:1103909674456002, partition_id:1152921633724301608, part_idx:30, subpart_idx:296}, log_id:41286, log_timestamp:1739863802213255}, {partition:{tid:1103909674467337, partition_id:35, part_cnt:0}, log_id:17737, log_timestamp:1739863948014479}], global_trans_version:1739863948014479, checksum:1687752620)}, observer.log.20250219130151858: [2025-02-19 12:58:41.466558] WDIAG [STORAGE.TRANS] ob_trans_service.cpp:4907 [76419][0][Y0-0000000000000000-0-0] [lt=18] [dc=0][errcode=-4103] replay commit log error (ret=-4103, ret="OB_CHECKSUM_ERROR", log={[log_type:4, partition:{tid:1103909674467337, partition_id:35, part_cnt:0}, trans_id:{hash:10512527056860699594, inc:16153037, addr:"xxx.xxx.xxx.34:2882", t:1739863618931915}, partition_log_info_arr:[{partition:{tid:1103909674456002, partition_id:1152921633724301601, part_idx:30, subpart_idx:289}, log_id:16255, log_timestamp:1739863802218728}, {partition:{tid:1103909674456002, partition_id:1152921633724301602, part_idx:30, subpart_idx:290}, log_id:50031, log_timestamp:1739863802219687}, {partition:{tid:1103909674456002, partition_id:1152921633724301603, part_idx:30, subpart_idx:291}, log_id:18567, log_timestamp:1739863802212007}, {partition:{tid:1103909674456002, partition_id:1152921633724301604, part_idx:30, subpart_idx:292}, log_id:28040, log_timestamp:173986380222289}, {partition:{tid:1103909674456002, partition_id:1152921633724301605, part_idx:30, subpart_idx:293}, log_id:38565, log_timestamp:1739863802212007}, {partition:{tid:1103909674456002, partition_id:1152921633724301606, part_idx:30, subpart_idx:294}, log_id:63566, log_timestamp:1739863802212007}, {partition:{tid:1103909674456002, partition_id:1152921633724301609, part_idx:30, subpart_idx:297}, log_id:79260, log_timestamp:1739863802212007}, {partition:{tid:1103909674456002, partition_id:1152921633724301610, part_idx:30, subpart_idx:298}, log_id:93902, log_timestamp:173986380222289}, {partition:{tid:1103909674456002, partition_id:1152921633724301607, part_idx:30, subpart_idx:295}, log_id:39308, log_timestamp:173986380222289}, {partition:{tid:1103909674456002, partition_id:1152921633724301608, part_idx:30, subpart_idx:296}, log_id:41286, log_timestamp:1739863802213255}, {partition:{tid:1103909674467337, partition_id:35, part_cnt:0}, log_id:17737, log_timestamp:1739863948014479}], global_trans_version:1739863948014479, checksum:1687752620}, timestamp:1739863983393592, log_id:17738)

```

上述日志内容为 OceanBase 数据库的分布式事务日志（WDIAG [STORAGE.TRANS]），记录了在回放提交日志时发生的校验和错误（OB_CHECKSUM_ERROR）。日志中包含大量分区、事务 ID、时间戳、节点地址等内部状态信息。两条主要日志分别来自 ob_trans_par_ctx.cpp 和 ob_trans_service.cpp，均报告相同错误码 -4103。可用于诊断分布式事务一致性或数据损坏问题。

## 关键诊断信息

### 触发条件

在内存中活跃的 callback 数量超过 10000000 的时候，触发 rollback to。

### 关键日志信息

```shell
[2025-02-19 12:58:41.466505] WDIAG [STORGAGE.TRANS] ob_trans_part_ctx.cpp:4292 [76419][0][Y0-000000000000000-0-0] [lt=20] [dc=0][errcode=-4103] replay commit log error(ret=-4103, ret="OB_CHECKSUM_ERROR",context=...
observer.log.20250221111807591:[2025-02-21 11:16:09.752115] WDIAG [STORAGE.TRANS] ob_mvcc_trans_ctx.cpp:900 [121155][0][Y0-0000000000000000-0-0] [lt=11] [dc=0][errcode=0] memtable fifo callback too long(count=1048576, iter=0x7f7925416be0, start=0x7fa0a212a068, end=0x7fa0a212a068, type=19, for_replay=true, lbt()="0x113b1290 0xb08cba1 0x5da32c5 0xc203533 0xc6aae98 0xc6b3c9c 0xc771e3d 0xc0edfef 0xc0ea9a1 0xc0e8a3f 0x5e73676 0x74ec59e 0x10d35d13 0x10d35b6f 0x11ce6fef")
observer.log.20250221111807591:[2025-02-21 11:16:16.461968] ERROR issue_dba_error (ob_log.cpp:2328) [121155][0][Y0-0000000000000000-0-0] [lt=17] [dc=0][errcode=-4388] Unexpected internal error happen, please checkout the internal errcode(errcode=0, file="ob_memtable_context.cpp", line_no=827, info="MT_CTX: replay checksum error")

```

## 问题原因

当内存中活跃 callback 数量超过 10000000 时，系统会在触发 rollback 时跳过 checksum 计算以提升性能。但当前的清理逻辑存在缺陷——仅清除了部分前缀的 checksum 缓存，导致残留的 checksum 与回滚后的数据状态不一致，最终引发校验错误。

## 问题的风险及影响

事务回放持续报错 -4103。

## 适用版本

OceanBase 数据库 V3.x 版本。

## 解决方法

通过打开 `ignore_replay_checksum_error` 跳过即可，没有数据正确性问题。

## 规避方式

减少 `freeze_trigger_percentage` 不让内存中包含超过 10000000 的 callback 数量。

Previous

[OceanBase 数据库 V3.x 及之前的版本，remove partition 过程中如果卡住，会有卡冻结、内存爆、clog 盘爆的问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002396808)

Next

[OceanBase 数据库选举](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000075) ![有帮助](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) 咨询热线
