首批通过分布式安全可靠测评,为关键业务系统打造
大量的 change tenant 请求记录到 __all_server_event_histroy 表导致 OCP 采集任务用满 SYS 租户 CPU 资源
更新时间:2026-06-10 01:56
问题现象
生产环境备集群内产生了大量的 change tenant 请求记录到主集群的 __all_server_event_history 表,另外 OCP 是升级到 V4.2.1 后的版本,由于 OCP 新增了采集 __all_server_event_history 数据的逻辑,同时也存在 RS 清理策略缓慢导致 __all_server_event_history 数据堆积严重表记录变的很大,此时 OCP 采集数据任务发起的查询 __all_server_event_history 表请求就会导致 SYS 租户 CPU 被用满。
关键诊断信息
触发条件
备集群内产生了大量的 change tenant 请求记录到主集群的 __all_server_event_history 表,同时 OCP 采集数据任务发起的查询 __all_server_event_history 表的请求。
事前巡检
查询 processlist 观察发现活跃有大量的 SQL 是在查询 __all_server_event_history 表。
select * from oceanbase.__all_virtual_processlist where tenant ='sys' and info is not null;

事后诊断
查询 __all_server_event_history 表发现有大量来自备集群执行的 change tenant 请求。

问题原因
备集群内产生了大量的 change tenant 请求记录到了主集群的 __all_server_event_history 表中,change tenant 请求的频率不符合预期,大量的 change tenant 请求加上 RS 清理策略缓慢导致 __all_server_event_history 表异常的有大量的表记录,由于客户升级到 OCP V4.2.1 版本后 OCP 新增了采集 __all_server_event_history 数据的逻辑任务,OCP 采集数据任务发起的查询 __all_server_event_history 表请求就会导致 SYS 租户 CPU 被用满。
备集群产生 change tenant 频率是不符合预期的,可以升级的话是能彻底规避这个问题的(修复版本:V2.2.77 BP13)。
手动删除
__all_server_event_history表,按分区删除加 limit 1024 限制防止出现大事务。delete from __all_server_event_history partition(p15) where gmt_create < usec_to_time('xxx') limit 1024;将 OCP 的 Sync system event 定时任务给关掉影响集群概览的最近 7 天事件的展示。

问题的风险及影响
SYS 租户 CPU 被用满。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 MySQL 租户,对于 Oracle 租户无影响。
影响版本
OceanBase 数据库企业版 V2.2.77 GA(oceanbase-2.2.77-20210508211731)及之后版本、V3.1.2 GA(oceanbase-3.1.2-20210618150922)及之后版本、V3.2.3 GA(oceanbase-3.2.3.0-20220418212020)及之后版本。
解决方法
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V2.2.77 BP13(oceanbase-2.2.77-113000052022082622)、V3.1.2 BP10(oceanbase-3.1.2-110000022022092714)、V3.2.3 BP5(oceanbase-3.2.3.2-105000062022090916)。
- 临时解决办法是把 OCP 的
Sync system event定时任务给关掉,升级到修复版本能彻底解决这个问题。(补充 V2.2.76 修复版本 oceanbase-2.2.76-100000032023032016 此版本修复之前的 V2.2.76 版本都受影响)(开源修复版本 V3.1.4_CE_BP1 此版本修复之前的版本都受影响)
规避方式
手动删除 __all_server_event_history 表,按分区删除加 limit 1024 限制防止出现大事务。
警告
更新内部表 __all_server_event_history 存在风险,请勿自行操作。如果需要修改,请咨询 OceanBase 技术支持。