【OceanBase 诊断调优】—— OceanBase 数据库统计信息被禁用,状态为 broken 的原因和解决方法

问题现象

因为人为因素导致部分统计信息函数未安装,自动统计信息触发执行长期失败。重新安装统计信息相关函数后,发现仍然无法正常自动统计信息收集,统计信息状态为 broken。

问题原因

统计信息 JOB 收集失败次数达到 16 次会直接禁用 JOB 任务的使用。

适用版本

OceanBase 数据库 V4.2.4(oceanbase-4.2.4.0-100000252024070621)之前 V4.x 版本。

解决方法

  • 解决方法一:该禁用限制在 OceanBase 数据库 V4.2.4 版本已经取消,升级到 V4.2.4 版本。

    升级至问题已修复版本。目前已修复的版本为 V4.2.4(oceanbase-4.2.4.0-100000252024070621)版本。

  • 解决方法二:不升级的情况下,手动解除限制需要修改系统表。

    1. 登录 sys 租户切换到业务租户。

      复制代码
      alter system change TENANT xxx;
    2. 更新内部表 __all_tenant_scheduler_job

      复制代码
      -- 注意字段类型对应的值 failures,flag 是 int 类型。
      update __all_tenant_scheduler_job set failures=0,state='SCHEDULED',flag=0;
      警告

      更新内部表 __all_tenant_scheduler_job 存在风险,请勿自行操作。如果需要修改,请咨询 OceanBase 技术支持。

    3. 手动调用统计信息收集测试。

      复制代码
      -- 示例。
      call dbms_scheduler.set_attribute('MONDAY_WINDOW', 'NEXT_DATE', '2024-07-22 11:17:00');
    4. 在 sys 租户下查看统计信息收集的结果。

      复制代码
      select * from oceanbase.DBA_SCHEDULER_JOBS where job_name='MONDAY_WINDOW'\G;
相关推荐
王仲肖5 分钟前
PostgreSQL 统计信息 — 完整总结与优化指南
数据库·postgresql
有想法的py工程师7 分钟前
PostgreSQL vs PolarDB:Checkpoint 调优策略深度对比(高频 vs 低频)
大数据·数据库·postgresql
m0_377618239 分钟前
golang如何使用struct嵌套_golang struct结构体嵌套使用方法.txt
jvm·数据库·python
2301_8152795213 分钟前
Redis如何降低快照对CPU的影响_合理分配RDB执行时机避开业务高峰期
jvm·数据库·python
Greyson120 分钟前
Go语言怎么用GitHub Actions_Go语言GitHub Actions教程【基础】.txt
jvm·数据库·python
qq_3422958220 分钟前
CSS如何实现单选按钮自定义样式_利用伪元素隐藏默认UI
jvm·数据库·python
深念Y21 分钟前
状态缓存与TTL:给每个设备状态贴一张“保质期”
数据库·缓存·智能家居·时间·时间戳·智能电视·ttl
m0_6403093022 分钟前
Go语言怎么做链路追踪_Go语言分布式链路追踪教程【精选】.txt
jvm·数据库·python
Jaygee-24 分钟前
WordPress 企业官网搭建教程:用 GMSSH 免费配好 HTTPS、WAF 和网站报表
java·数据库·https
m0_3776182324 分钟前
CSS如何实现背景颜色的棋盘格分布_利用repeating-gradient
jvm·数据库·python