---
title: "集群合并阻塞 | OceanBase 文档中心"
description: 集群合并阻塞 OceanBase 通过 Compaction 来进行增量数据与基线数据的整合。Compaction 行为在 OceanBase 数据库中被大致分为两类：转储与合并。 转储对应 minor freeze 或 minor merge，合并对应 major freeze 或 major merge。 当任一…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.3 企业版 LTS

# 集群合并阻塞

更新时间：2025-07-28 15:47:16

OceanBase 通过 Compaction 来进行增量数据与基线数据的整合。Compaction 行为在 OceanBase 数据库中被大致分为两类：转储与合并。

转储对应 minor freeze 或 minor merge，合并对应 major freeze 或 major merge。

当任一租户 Minor Freeze 的次数达到参数 `minor_freeze_times` 指定的阈值，或者达到参数`major_freeze_duty_time` 设定的调度时间，就会触发合并。

本节介绍几种常见的合并阻塞的场景以及解决方法。

## 如何判断合并阻塞

1. 初步的判断方法是，排除系统变更和流量上涨的因素后，通过合并开始时间以及历史上的合并时长进行对比，发现合并耗时远超日常均值时，大概率可能遇到合并阻塞。具体查询 SQL 如下：

```sql
obclient> SELECT * FROM __all_zone WHERE name in ('last_merged_time','merge_status','merge_start_time');

```

2. 查看是否有 `merge error`，如果出现 `merge error`，此时合并会被停止。

   ```sql
   obclient> SELECT * FROM __all_zone WHERE name = 'is_merge_error';

   ```
 3. 查看具体合并阻塞的 Partition，`latest_version` 即为当前最新的冻结版本号，可以通过 _`_all_zone` 表的 `frozen_version` 获取。

   ```sql
   obclient> SELECT * FROM __all_virtual_meta_table WHERE data_version != 'latest_version' LIMIT 1;

   ```

## 应急处理流程

对于集群合并阻塞的情况，一般分如下几种，针对每种情况进行相关处理。

1. 首先排除特殊情况，即开启了手动合并。查询值正常为 `false`，如果为 `true` 则系统不会自动触发合并，此时需要关闭手动合并。

   ```sql
   obclient> show parameters like 'enable_manual_merge';

   ```
 2. 节点硬件故障导致合并阻塞。

   针对这种情况，可以进行如下操作，使合并继续。

      1. 确认故障的 `observer` 已经处于 inactive 状态。
      2. 调小永久下线时间。让 OBserver 自动剔除故障节点成员，让合并继续。

        ```sql
        obclient> alter system set server_permanent_offline_time ='xxx';

        ```
 3. 磁盘空间满导致合并阻塞，此时需要清理腾挪部分磁盘空间使合并继续。详见 [节点数据盘空间满](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357835)。
 4. 节点 IO 或网卡负载过高，导致 RPC 失败，合并无法推进，处理方法请参见 [节点磁盘 IO 过高](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357830) 和 [节点网卡负载过高](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357831)。
 5. RS 出现无主等异常，导致合并失败。更多内容请参见 [SYS租户/RS服务问题](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000357843)。

   判断 RS 出现无主问题的方法：登录 RS 所在的节点，查询 `election.log` 和 `rootservice.log`，具体命令参考如下：

   ```bash
   grep 'election_error_rs' election.log
   grep 'ob_major_freeze_launcher.cpp' rootservice.log |grep 'failed'

   ```

 上一篇 下一篇 ![有帮助](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) 咨询热线
