---
title: OceanBase 数据库 V4.2.1 BP7 版本转储报错 -4018 导致 clog 无法回收的原因和解决方法-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 数据库 V4.2.1 BP7 版本转储报错 -4018 导致 clog 无法回收的原因和解决方法相关的常见问题和使用技巧，帮助您快速解决OceanBase 数据库 V4.2.1 BP7 版本转储报错 -4018 导致 clog 无法回收的原因和解决方法的难题。
---
切换语言

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

划线反馈

# OceanBase 数据库 V4.2.1 BP7 版本转储报错 -4018 导致 clog 无法回收的原因和解决方法

更新时间：2026-06-12 08:51

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

## 问题现象

OceanBase 数据库 V4.2.1 BP7 版本发生租户的 clog 无法回收，通过 `LOG_DISKUSED_PERCENTAGE` 看到该租户的 `LOG_DISK_IN_USE` 字段值与 `LOG_DISK_SIZE` 字段值的比值达到了 80%（达到 80% 开始回收，但当 clog 盘达到 95% 时才不让写入），且发生转储失败，`__all_virtual_compaction_diagnose_info` 可以看到对应租户节点的 `diagnose_info` 列中有 `error_no=-4018` 的 `mini_merge` 失败。

![image001](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/transfer-compaction/compaction/20241219notclog001.png)

![image002](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/transfer-compaction/compaction/20241219notclog002.png)

关键日志含有 `range too small, not enough rows ro split` 信息，完整日志如下。

```shell
[2024-12-09 16:49:23.968380] WDIAG [STORAGE] push_range_bounds_ (ob_tx_data_memtable.cpp:724) [322204][T1002_TX_TABLE_][T1002][xxxxx-xxxxx-xxxxx-xxxxx] [lt=9][errcode=-4018] range too small, not enough rows ro split(ret=-4018, ret="OB_ENTRY_NOT_EXIST", part_cnt=23, this={ObITable:{this:0x7faf22ff21b0, key:{tablet_id:{id:49402}, column_group_idx:0, table_type:"TX_DATA_MEMTABLE", scn_range:{start_scn:{val:1725272964925707720, v:0}, end_scn:{val:1725276208282466164, v:0}}}, ref_cnt:4, upper_trans_version:-4007, timestamp:0}, is_inited:true, is_iterating:false, pre_process_done:true, construct_list_done:true, min_tx_scn:{val:1725272965238800105, v:0}, max_tx_scn:{val:1725276208282466164, v:0}, min_start_scn:{val:1725255277815586089, v:0}, snapshot_version:{val:1725272965238800105, v:0}, inserted_cnt:19665, deleted_cnt:19643, write_ref:0, occupied_size:61849472, state:2, stat_change_ts:{frozen_time:1725276209132855, ready_for_flush_time:1725276209132944, create_flush_dag_time:1733734163967596, release_time:0}, tx_data_map:0x7f9d1ed9a060, memtable_mgr:0x7fadca2c01b0, commit_versions_serialize_size:0, row_key_array:[{rowkey:{"BIGINT":0}, obj_array:{"BIGINT":0}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}, {rowkey:, obj_array:{"NULL":"NULL"}}], tx_id_2_range:[]})

```

## 问题原因

租户的转储任务报错 -4018 而失败，无法转储将内存内的增量数据写入磁盘会导致事务日志的 checkpoint 无法更新，从而导致 clog 无法回收。而转储任务报错 -4018 的原因为 OceanBase 数据库 V4.2.1 BP7 版本的已知问题，转储任务所转储的对象为事务数据表，事务存在大量的语句回滚操作，导致 tx data 数据量膨胀，触发并行转储，但要转储的事务个数又小于并行转储的并行数，导致并行转储事务数据表任务报错 `-4018 range too small, not enough rows ro split`。

即当大事务场景下，如果有大量的行锁冲突，则会有极小概率会触发此问题。

## 问题的风险及影响

转储任务无法成功，会导致租户内存打满，clog 无法回收直至达到租户在该节点的 clog 使用上限，最终会导致租户的部分表或分区在此节点无法提供服务，若故障节点超过半数，则租户的部分表或分区会无法提供服务。

## 影响租户

影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。

## 适用版本

OceanBase 数据库 V4.2.1 BP7 版本。

## 解决方法及规避方式

- 解决方法：

  轮流重启故障节点，且在重启过程中不断发起（例如两分钟一次）此租户的转储任务（`alter system minor freeze;`）。

  重启后若观测到 `gv$ob_log_stat` 表中对应日志流节点的 `end_lsn - base_lsn` 在减小则说明问题恢复。

  ![image003](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/knowledge-base/database/transfer-compaction/compaction/20241219notclog003.png)
 - 规避方式：

     - 升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库 V4.2.1 BP7 Hotfix3（oceanbase-4.2.1.7-107030032024062709）及之后版本。
     - 尽量减少事务冲突、调大租户规格以减小发生概率。

上一篇

[共享存储模式下合并丢数据](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002381936)

下一篇

[备集群合并超时的原因和解决方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000002397823) ![有帮助](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) 咨询热线
