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

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

划线反馈

# OceanBase 数据库合并的常见问题

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

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

本文介绍如何查看合并的状态、进度和磁盘使用量，以及如何触发、加速/放慢合并，排查合并问题。

## 如何查看合并状态？

通过以下 SQL 查询 `__ALL_ZONE` 表，查看 `INFO` 列为 `IDLE` 对应行的 `gmt_modified` 列值，该值表示最近一次合并的完成时间。

```javascript
obclient> SELECT * FROM __ALL_ZONE WHERE INFO LIKE '%IDLE%';
+----------------------------+----------------------------+-------+--------------+-------+------+
| gmt_create                 | gmt_modified               | zone  | name         | value | info |
+----------------------------+----------------------------+-------+--------------+-------+------+
| 2021-03-24 10:33:04.727508 | 2021-03-31 02:01:41.263266 |       | merge_status |     0 | IDLE |
| 2021-03-24 10:33:04.729196 | 2021-03-31 02:01:31.046593 | zone1 | merge_status |     0 | IDLE |
| 2021-03-24 10:33:04.730523 | 2021-03-31 02:00:50.346948 | zone2 | merge_status |     0 | IDLE |
| 2021-03-24 10:33:04.731953 | 2021-03-31 02:00:50.349732 | zone3 | merge_status |     0 | IDLE |
+----------------------------+----------------------------+-------+--------------+-------+------+

```

## 如何查看合并过程的磁盘用量？

可以通过 `__ALL_VIRTUAL_DISK_STAT` 查询 `total_size` 与 `free_size`，并计算使用量。

```unknow
obclient> SELECT  svr_ip,svr_port,total_size/1024/1024/1024 AS total, free_size/1024/1024/1024 AS free,(total_size-free_size)/1024/1024/1024 as used
FROM __all_virtual_disk_stat;
+----------------+----------+------------------+------------------+----------------+
| svr_ip         | svr_port | total            | free             | used           |
+----------------+----------+------------------+------------------+----------------+
| xxx.xx.xxx.xxx |     2882 | 176.552734375000 | 176.269531250000 | 0.283203125000 |
| xxx.xx.xxx.xxx |     2882 | 176.552734375000 | 176.177734375000 | 0.375000000000 |
| xxx.xx.xxx.xxx |     2882 | 176.552734375000 | 176.177734375000 | 0.375000000000 |
+----------------+----------+------------------+------------------+----------------+
3 rows in set (0.01 sec)

```

## 如何排查合并过程中的写入放大问题？

Frozen MemTable 内存需要等到转储或合并结束后，才会被清空并重新使用，可能导致有限的空闲 MemStore在写入量大的场景被写满。

可以通过查询 `gv$memstore` 视图查看内存使用情况，其中 `ACTIVE` 列表示可用的内存，`TOTAL` 列表示总内存。

```unknow
SELECT * FROM gv$memstore;

```

可以通过配置`freeze_trigger_percentage`降低触发内存清空百分比。`freeze_trigger_percentage`用于设置触发全局冻结的租户内存使用的阈值，默认为 70，取值范围为 1 ~ 99。有关该配置项的详细信息，请参见 OceanBase 数据库《参考指南》中的 **系统配置项** 章节。

## 如何查看合并速度？

可以通过 OCP 中监控查看合并速度，本文以 OCP V2.4.4 为例。

1. 登录 OCP。
 2. 在左侧导航栏上单击 **集群** ，单击要查看合并速度的集群名称，进入 **集群概览** 页面。
 3. 在左侧导航栏单击 **合并管理** ，查看合并耗时。

   ![merge_time](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/2304998161/p266177.png)

## 如何延迟触发合并？

`freeze_trigger_percentage` 用于设置触发全局冻结的租户内存使用的阈值，默认为 70，取值范围为 1 ~ 99。有关该配置项的详细信息，请参见 OceanBase 数据库《参考指南》中的 **系统配置项** 章节。

将该参数调整为一个更大的值，可以延迟触发的时间。

```unknow
obclient> ALTER SYSTEM SET freeze_trigger_percentage=80;

```

## 如何暂停或继续合并？

OceanBase 数据库提供了暂停与继续的 SQL 语句接口，可以通过以下 SQL 暂停或继续合并。

- 通过以下 SQL 语句暂停合并。

  ```unknow
  obclient> ALTER SYSTEM SUSPEND MERGE;

  ```
 - 通过以下 SQL 语句继续合并。

  ```unknow
  obclient> alter system resume merge;

  ```

## 如何加快或放慢合并速度？

可以通过调整合并的线程数的方式调整合并速度。`merge_thread_count` 用于设置每日合并工作的线程数，默认为 0，表示取 10 与 CPU 数量 * 0.3 的较小值。取值范围为 0 ~ 64。有关该配置项的详细信息，请参见 OceanBase 数据库《参考指南》中的 **系统配置项** 章节。 **注意**

无论 `merge_thread_count` 设置为何值，OceanBase 数据库用于合并的线程数都不会超过 48。

上一篇

[什么是渐进合并](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209932)

下一篇

[常见的 OceanBase 数据库 compaction 参数](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209915) ![有帮助](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) 咨询热线
