首批通过分布式安全可靠测评,为关键业务系统打造
如何查看 Compaction 的当前合并进度及历史记录
更新时间:2026-06-15 09:16
本文主要介绍如何通过虚拟视图来查看 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 状态,说明正在执行合并。
select * from __all_zone;OceanBase 数据库 V4.x 版本
如果每个 zone 处于 COMPACTION 状态,说明正在执行合并。
select * from CDB_OB_MAJOR_COMPACTION;
查询 server 级别的进度表,可以看到当前是否有合并任务,未完成的 partition 数量。
select * from __all_virtual_server_compaction_progress;查询 partition 级别的进度表,可以看到未完成的数据量,预期完成时间等信息。
OceanBase 数据库 V4.x 之前版本。
select * from __all_virtual_partition_compaction_progress;OceanBase 数据库 V4.x 版本。
select * from __all_virtual_tablet_compaction_progress;
对于未出现在 partition 进度表中的 partition/ 长时间未完成的 partition,使用诊断表进行诊断,是否有异常情况出现。
select * from __all_virtual_compaction_diagnose_info;
转储/ Mini Merge
查看是否存在冻结的 memtable。
select * from __all_virtual_table_mgr where table_type = 0 and is_active = 0;查询 partition 级别的进度表,可以看到未完成的数据量,预期完成时间等信息。
OceanBase 数据库 V4.x 之前版本。
select * from __all_virtual_partition_compaction_progress;OceanBase 数据库 V4.x 版本。
select * from __all_virtual_tablet_compaction_progress;
对于未出现在 partition 进度表中的 partition /长时间未完成的 partition,使用诊断表进行诊断,是否有异常情况出现。
select * from __all_virtual_compaction_diagnose_info;