【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;
      
相关推荐
云和数据.ChenGuang4 小时前
Django 应用安装脚本 – 如何将应用添加到 INSTALLED_APPS 设置中 原创
数据库·django·sqlite
woshilys5 小时前
sql server 查询对象的修改时间
运维·数据库·sqlserver
Hacker_LaoYi5 小时前
SQL注入的那些面试题总结
数据库·sql
建投数据6 小时前
建投数据与腾讯云数据库TDSQL完成产品兼容性互认证
数据库·腾讯云
Hacker_LaoYi7 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
岁月变迁呀7 小时前
Redis梳理
数据库·redis·缓存
独行soc7 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
你的微笑,乱了夏天7 小时前
linux centos 7 安装 mongodb7
数据库·mongodb
工业甲酰苯胺7 小时前
分布式系统架构:服务容错
数据库·架构
独行soc8 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘