基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
ob_cluster_recyclebin_disk_used_over_threshold OceanBase 回收站磁盘占用超限
更新时间:2026-04-02 18:05:50
告警描述
回收站数据量超过 100 GiB 时告警。
告警原理
| 参数 | 值 |
|---|---|
| 监控指标 | ob_database_disk_used_gb |
| 指标来源 | 采集自OB内部视图: OB 4.0.0 之前采集sql: select t1.tenant_id, t2.database_id, t3.database_name, sum(t1.data_size) as data_size, sum(t1.required_size) as required_size from (select tenant_id, table_id, sum(data_size) as data_size, sum(required_size) as required_size from __all_virtual_meta_table group by table_id) t1 left join (select tenant_id, table_id, database_id from __all_virtual_table) t2 on t1.tenant_id = t2.tenant_id and t1.table_id = t2.table_id left join (select tenant_id, database_id, database_name from gv$database) t3 on t2.tenant_id = t3.tenant_id and t2.database_id = t3.database_id group by t2.database_idOB 4.0.0 及之后的版本采集sql: select t1.tenant_id, t1.database_name, t3.object_id as database_id, sum(t2.data_size) as data_size, sum(t2.required_size) as required_size from (select tenant_id, database_name, table_id, tablet_id from cdb_ob_table_locations) t1 left join (select tenant_id, tablet_id, svr_ip, svr_port, data_size, required_size from cdb_ob_tablet_replicas) t2 on t1.tenant_id = t2.tenant_id and t1.tablet_id = t2.tablet_id left join (select con_id, object_name ,object_id from CDB_OBJECTS where object_type = 'DATABASE') t3 on t1.tenant_id = t3.con_id and t1.database_name = t3.object_name group by t1.database_name |
| 采集指标 | ob_database_disk_required_size |
| 监控表达式 | sum(ob_database_disk_required_size{database_name="__recyclebin",@LABELS}) by (@GBLABELS) / 1073741824 |
| 采集周期 | 60 秒 |
规则信息
| 监控表达式 | 监控指标含义 | 默认阈值 | 检测周期 | 消除周期 |
|---|---|---|---|---|
| ob_database_disk_used_gb > 100 | 回收站数据占用的磁盘空间 | 100(GiB) | 20 秒 | 5 分钟 |
告警信息
| 告警触发方式 | 告警等级 | 范围 |
|---|---|---|
| 基于监控指标的表达式 | 警告 | 集群 |
告警模板
告警概述
- 模板:${alarm_target} ${alarm_name}
- 样例:alarm_template_id=0:ob_cluster=Test-1 OceanBase 回收站磁盘占用超限
告警详情
- 模板:集群:${ob_cluster_name},告警:${alarm_name}。回收站磁盘占用 ${value_shown} 超过 ${alarm_threshold} GiB。
- 样例:集群:Test,告警:OceanBase 回收站磁盘占用超限。回收站磁盘占用 120 GiB 超过 100 GiB。
告警恢复
- 模板:告警:${alarm_name},OceanBase 回收站磁盘占用:${value_shown}
- 样例:告警:OceanBase 回收站磁盘占用超限,OceanBase 回收站磁盘占用:90 GiB
对系统的影响
回收站占用磁盘空间,如果是清理大量数据且开启了回收站功能,将浪费大量系统资源。
可能原因
开启了回收站,短时间内 Truncate 大量数据,被清理的数据进入回收站,并且回收站清理周期较长,如:
alter system set recyclebin_object_expire_time='7d',7天之后数据才会被清理。开启了回收站,一段时间内积累了一定量的数据。回收站未开启自动清理策略。需设置清理周期。
处理方法
确认是否需要开启回收站:
- 开启或关闭回收站命令:
set GLOBAL recyclebin = on / off; - 开启或关闭回收站闪回命令:
set GLOBAL ob_enable_truncate_flashback = on /off;
如果需要开启回收站,可以配置合理的清理回收站的周期,如
alter system set recyclebin_object_expire_time='7d',进入回收站的数据在 7 天之后会被清理。- 开启或关闭回收站命令:
手动清理回收站中的数据:
- 查看回收站内对象:
SHOW RECYCLEBIN;。 - 用于从回收站把指定库物理删除:
PURGE DATABASE object_name;。 - 用于从回收站中把指定表真正物理删除:
PURGE TABLE object_name;。 - 用于清空整个回收站:
PURGE RECYCLEBIN;。
- 查看回收站内对象: