首批通过分布式安全可靠测评,为关键业务系统打造
监控概述
更新时间:2025-11-09 14:21:12
OceanBase 数据库 V4.0 有着非常丰富的视图,通过这些视图可以获取 OceanBase 集群各种数据库对象的基本信息和实时状态信息。这些视图分为两大类:数据字典视图和动态性能视图。
数据字典视图
展示系统租户管理的数据库对象的基本信息。命名特点以
DBA_和CDB_开头,DBA_开头的视图展示的是各个租户内的信息,比如DBA_OB_LS视图展示的是租户内的日志流信息,系统租户内的DBA_OB_LS表只展示系统租户自身的日志流信息。CDB_开头的视图是系统租户专用的,用于在系统租户内查看集群所有租户的数据库状态,比如CDB_OB_LS视图展示的是集群所有租户的所有日志流信息。一般每个DBA_开头的视图在系统租户下都有对应的CDB_开头的视图。动态性能视图
展示系统动态变化的状态信息。命名特点以
GV$和V$开头,V$只展示登录到的节点上的信息,GV$展示所有节点的信息。用户租户下的动态性能视图可以查看本租户的信息,比如GV$OB_UNITS视图可以在用户租户内查询到本租户的 Unit 资源分配信息。系统租户的动态性能视图可以查看整个集群所有租户的信息。
丰富的视图展示了 OceanBase 数据库的内部架构,及系统运行的详细状态。通过视图可以方便的查看 OceanBase 数据库的系统组成及实时状态,了解组件之间的关系,内部视图是学习 OceanBase 数据库的最好途径之一。例如我们在前几章中介绍的 OceanBase 数据库的物理架构和逻辑架构,其相应的数据字典视图以如下示意图表示。

指标采集
监控指标相关的数据来源于 OceanBase 数据库内部的动态性能视图,所有监控指标都可以通过 SQL 语句进行访问。动态性能视图分为 GV$ 视图和 V$ 视图,外部监控系统(例如 OCP)通过在每个数据库服务器上部署代理进程,通过 SQL 接口定期拉取本机上的监控信息(V$ 视图),部分全局信息(例如 Root Service 相关)通过中心节点采集。监控数据统一汇报给监控系统数据库,并按照各种维度聚合(集群维度、租户维度、节点维度、Unit 维度),从而构建整个监控大盘。
说明
- 监控指标的数据来源于 OceanBase 数据库的视图,但日常工作中应该尽量使用可视化的外部监控系统,可以更加方便的分析监控指标的变化趋势,提高效率。
- 由于
GV$视图和V$视图的同质性,下文不再特殊区分,将根据具体场景选择合适的视图。
监控指标可以通过系统租户和用户租户来查看,两种租户下视图的名字、字段和使用体验完全一致。区别是用户租户下只能查看本租户的监控信息,而系统租户可以查看当前集群内所有租户的监控信息。
除了 SQL 接口,监控指标还支持通过 Prometheus 协议采集,从而可以方便的基于 Prometheus 和 Grafana 构建可视化监控大盘。
OceanBase 常用的动态性能视图见如下列表:
| 视图 | 展示内容 |
|---|---|
GV$SYSSTAT |
系统统计信息。 |
GV$SYSTEM_EVENT |
租户级等待事件统计。 |
GV$SESSION_EVENT |
会话级等待事件统计。 |
GV$LATCH |
锁统计信息。 |
GV$OB_MEMORY |
内存信息。 |
GV$OB_PROCESSLIST |
会话信息。 |
GV$OB_TRANSACTION_PARTICIPANTS |
活跃事务的参与者信息。 |
GV$OB_SQL_AUDIT |
SQL 统计信息。 |
GV$SQL_PLAN_MONITOR |
SQL 算子级统计信息。 |
GV$OB_PLAN_CACHE_STAT |
Plan Cache 统计信息。 |
GV$OB_PLAN_CACHE_PLAN_STAT |
执行计划统计信息。 |
GV$OB_PLAN_CACHE_PLAN_EXPLAIN |
执行计划详细信息。 |
GV$OB_SERVERS |
节点的信息。 |
GV$OB_UNITS |
Unit 的信息。 |
GV$OB_PARAMETERS |
配置项信息。 |
GV$OB_KVCACHE |
KVCache 信息。 |
GV$OB_SSTABLES |
SSTable 信息。 |
GV$OB_MEMSTORE |
MemStore 信息。 |
GV$OB_LOG_STAT |
日志流的信息。 |
指标分类
监控指标可以从多个角度进行分类。
根据监控指标的类型分类,可以分为系统监控和 SQL 监控。系统监控描述系统的运行状况,从而对系统(集群、租户、会话)的健康状态作出判断,系统监控又可以细分为监控项、等待事件、锁事件等。SQL 监控描述 SQL 相关的监控信息,记录 SQL 在执行过程中的资源消耗和等待事件,从而对一个具体的 SQL 问题进行诊断。
根据监控指标的粒度分类,可以分为租户级监控和会话级监控。租户级监控指标以租户 ID 和节点 IP 来索引,外部监控系统定期采集每台服务器上按租户粒度汇总的监控数据,并根据不同场景的需要,按照不同维度聚合展示(例如集群维度、租户维度、节点维度、Unit 维度)。租户级监控是监控大盘的数据来源。会话级监控指标以会话 ID 和 Trace ID 来索引,可以方便的对特定的会话进行全链路追踪,是全链路追踪的重要基础。
根据监控指标描述的对象分类,可以分为若干个大类的监控,例如,事务、KVCache、CLog、存储、资源、SSTable、MemStore 等内部组件。基于 OceanBase 数据库丰富的监控指标,可以方便的在故障诊断时不断下钻,一步步逼近根因;可以实时跟踪各组件的健康状况,及时发现风险隐患,避免发酵到影响数据库 SLA。