---
title: 如何查看 Compaction 的当前合并进度及历史记录-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于如何查看 Compaction 的当前合并进度及历史记录相关的常见问题和使用技巧，帮助您快速解决如何查看 Compaction 的当前合并进度及历史记录的难题。
---
切换语言

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

划线反馈

# 如何查看 Compaction 的当前合并进度及历史记录

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

适用版本： V1.4.x、V2.1.x、V2.2.x、V3.1.x、V3.2.x、V4.0.x、V4.1.x、V4.2.x 内容类型：How-to  

本文主要介绍如何通过虚拟视图来查看 Compaction 的当前合并进度及历史记录。

## 适用版本

OceanBase 数据库所有版本。

## Compaction 历史记录/进度/当前执行状态的内部表和视图

| 版本 | V3.2 版本之前 | V3.2 版本 | V4.0 版本 |
| --- | --- | --- | --- |
| zone 合并情况 | `__all_zone` | `__all_zone` | `CDB_OB_MAJOR_COMPACTION` |
| server 合并进度 | NA | `__all_virtual_server_compaction_progress` | `__all_virtual_server_compaction_progress` \ `GV$OB_COMPACTION_PROGRESS` |
| 分区合并进度 | NA | `__all_virtual_partition_compaction_progress` | `__all_virtual_tablet_compaction_progress` \ `GV$OB_TABLET_COMPACTION_PROGRESS` |
| 分区合并历史 | `__all_virtual_partition_sstable_merge_info` | `__all_virtual_partition_compaction_history` | `__all_virtual_tablet_compaction_history` \ `GV$OB_TABLET_COMPACTION_HISTORY` |
| 宏块信息 | `__all_virtual_partition_sstable_macro_info` | `__all_virtual_partition_sstable_macro_info` | `__all_virtual_tablet_sstable_macro_info` |
| 诊断视图 | NA | `__all_virtual_compaction_diagnose_info` | `__all_virtual_compaction_diagnose_info` \ `GV$OB_COMPACTION_DIAGNOSE_INFO` |
| 建议视图 | NA | `__all_virtual_compaction_suggestion` | `__all_virtual_compaction_suggestion` \ `GV$OB_COMPACTION_SUGGESTIONS` |
| dag 虚拟表 | NA | `__all_virtual_dag` | `__all_virtual_dag` |
| dag scheduler 虚拟表 | NA | `__all_virtual_dag_scheduler` | `__all_virtual_dag_scheduler` |
| 失败 dag 记录 | NA | `__all_virtual_dag_warning_history` | `__all_virtual_dag_warning_history` |

## V3.2 之前的版本

__all_virtual_partition_sstable_merge_info

## V3.2 及后续版本

- V3.2 版本

     - __all_virtual_server_compaction_progress //机器合并进度表
     - __all_virtual_partition_compaction_progress //partition compaction 进度表
     - __all_virtual_partition_compaction_history //partition compaction 历史记录
     - __all_virtual_partition_sstable_macro_info // 每个分区的宏块信息
 - V4.0 版本

     - CDB_OB_MAJOR_COMPACTION // 租户级/zone 级合并信息
     - __all_virtual_server_compaction_progress //租户合并进度表
     - __all_virtual_tablet_compaction_progress //tablet compaction 进度表
     - __all_virtual_tablet_compaction_history //tablet compaction 历史记录
     - __all_virtual_tablet_sstable_macro_info // 每个分区的宏块信息
 - V3.2 版本之后都有的虚拟表

     - __all_virtual_compaction_diagnose_info // compaction 诊断表
     - __all_virtual_compaction_suggestion // compaction 建议表
     - __all_virtual_dag //dag虚拟表
     - __all_virtual_dag_scheduler //dag_scheduler 虚拟表
     - __all_virtual_dag_warning_history //失败 dag 信息表
 - 宏块信息虚拟表

  __all_virtual_partition_sstable_macro_info 可以查看当前所有宏块的信息

## 如何看合并进度

如果是 V3.2 之后的版本，查看虚拟表即可。

V3.2 之前的版本，看以下 4 个 meta 表有没有没有合并完成的 partition。

```
select * from __all_virtual_**_meta_table where data_version != xxx;

```

- 如果都合并完成了，那就是在汇报给 RS 的流程中。
 - 如果没有合并完成，则表示还有 partition 在合并过程中，按照合并超时的流程排查。

对于 V2.0 以下版本，meta 表指 `__all_virtual_core_meta_table`、`__all_virtual_core_root_table`、`__all_root_table`、`__all_meta_table`。

对于 V2.0 及以上版本，meta 表指 `__all_virtual_core_meta_table`、`__all_virtual_core_root_table`、`__all_root_table`、`__all_virtual_meta_table`。

## 如何看正在执行中的 compaction 任务

__all_virtual_sys_task_status

## 如何借助表或视图排查问题

### 合并/ Major Merge

- 查看当前集群的合并情况。

     - OceanBase 数据库 V4.x 之前版本

      如果每个 zone 处于 MERGING 状态，说明正在执行合并。

      ```sql
      select * from __all_zone;

      ```
     - OceanBase 数据库 V4.x 版本

      如果每个 zone 处于 COMPACTION 状态，说明正在执行合并。

      ```sql
      select * from CDB_OB_MAJOR_COMPACTION;

      ```
 - 查询 server 级别的进度表，可以看到当前是否有合并任务，未完成的 partition 数量。

  ```sql
  select * from __all_virtual_server_compaction_progress;

  ```
 - 查询 partition 级别的进度表，可以看到未完成的数据量，预期完成时间等信息。

     - OceanBase 数据库 V4.x 之前版本。

      ```sql
      select * from __all_virtual_partition_compaction_progress;

      ```
     - OceanBase 数据库 V4.x 版本。

      ```sql
      select * from __all_virtual_tablet_compaction_progress;

      ```
 - 对于未出现在 partition 进度表中的 partition/ 长时间未完成的 partition，使用诊断表进行诊断，是否有异常情况出现。

  ```sql
  select * from __all_virtual_compaction_diagnose_info;

  ```

### 转储/ Mini Merge

- 查看是否存在冻结的 memtable。

  ```sql
  select * from __all_virtual_table_mgr where table_type = 0 and is_active = 0;

      ```
 - 对于未出现在 partition 进度表中的 partition /长时间未完成的 partition，使用诊断表进行诊断，是否有异常情况出现。

  ```

上一篇

[如何修改 OceanBase 数据库的合并方式](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000001021)

下一篇

[集群中存在下线主机对合并的影响](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209896) ![有帮助](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) 咨询热线
