---
title: OceanBase 数据库卡合并报 -4024-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于OceanBase 数据库卡合并报 -4024相关的常见问题和使用技巧，帮助您快速解决OceanBase 数据库卡合并报 -4024的难题。
---
切换语言

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

划线反馈

# OceanBase 数据库卡合并报 -4024

更新时间：2026-06-15 09:16

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

## 适用版本

OceanBase 数据库 V3.2.4 以前版本。

## 问题现象

OceanBase 数据库合并失败，报 -4024，详细日志如下。

```shell
[2022-11-16 19:48:49.731708] WARN  [STORAGE] store_encoding_meta_and_fix_cols (ob_micro_block_encoder.cpp:427) [357551][0][YB420A21DDB6-0005ED950B0D9294-0-0] [lt=5] [dc=0] too big encoding meta(i=10, pos=71653, pos_bak=59634, encoding_meta_offset=152, *encoders_.at(i)={column_index:10, column_type:{type:"VARCHAR2", collation:"gbk_bin", coercibility:"INVALID"}, desc:{need_data_store:false, is_var_data:false, has_null:true, has_nope:false, need_extend_value_bit_store:false, bit_packing_length:0, fix_data_length:0, row_offset:0, row_length:0}, column_header:{type:3, attr:0, extend_value_index:0, offset:59482, length:12019}, extend_value_bit:1})
[2022-11-16 19:48:49.759691] WARN  [STORAGE] fill_row_data (ob_micro_block_encoder.cpp:739) [357551][0][YB420A21DDB6-0005ED950B0D9294-0-0] [lt=14] [dc=0] advance buffer failed(ret=-4024, data_buffer={data:0x7f85b9c090d0, pos:2089137, capacity:2097152}, row_size=11914)
[2022-11-16 19:48:49.759705] WARN  [STORAGE] build_block (ob_micro_block_encoder.cpp:492) [357551][0][YB420A21DDB6-0005ED950B0D9294-0-0] [lt=12] [dc=0] fill row data failed(ret=-4024)

```

## 问题原因

OceanBase 数据库 bug。OceanBase 数据库默认的行列混存编码的压缩方法（encoding）在遇到特殊的数据分布时触发。此场景触发概率不高，多见于测试环境。

## 解决方法

升级到 OceanBase 数据库 V3.2.4 版本。

## 应急处理方法

可通过临时关闭分区合并的 encoding 功能绕过问题，具体步骤如下。

1. 登录 SYS 租户，下述操作均在 SYS 租户中进行。
 2. 查询当前的版本号信息。

   ```shell
   obclient> select zone, name, value from oceanbase.__all_zone where name in ('frozen_version', 'last_merged_version');

   ```
 3. 找出上次合并存在问题的表和分区，其中 xxx 为上次合并的版本。

   ```shell
   obclient> select table_id,partition_id from oceanbase.__all_virtual_meta_table where data_version!=xxx;

   ```
 4. 通过应急配置项 `_force_skip_encoding_partition_id` 临时关闭这个分区这次合并的 encoding 功能。

   ```shell
   obclient> alter system set _force_skip_encoding_partition_id = '0@1100611139453888';

   ```
 5. 重新发起合并。
 6. 等版本号成功推高后（合并完成）将配置项修改回默认值。

   ```shell
   obclient> alter system set _force_skip_encoding_partition_id = '';

   ```

上一篇

[磁盘性能问题导致卡合并和磁盘写入拒绝](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000514285)

下一篇

[无法进行合并，错误代码 4217](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000000145) ![有帮助](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) 咨询热线
