暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

清理sys.WRH$_EVENT_HISTOGRAM遭遇的索引报错

数据库这点小事 2019-12-06
3027

今天收到了告警,业务库的sysaux表空间使用率超过90%,按照之前的sysaux表空间清理步骤来处理。

 在处理WRH$_EVENT_HISTOGRAM这个表的时候遇到了一个报错

    SQL> delete from sys.WRH$_EVENT_HISTOGRAM a
    2 where not exists (select 1
    3 from sys.wrm$_snapshot b
    4 where a.snap_id = b.snap_id
    5 and a.dbid = b.dbid
    6 and a.instance_number = b.instance_number);
    delete from sys.WRH$_EVENT_HISTOGRAM a
    *
    ERROR at line 1:
    ORA-01502: index 'SYS.WRH$_EVENT_HISTOGRAM_PK' or partition of such index is in unusable state

    提示很明显,索引失效。

    去库里查了下,从dba_indexes的情况看,索引其实是正常的。

    我们再来分析报错,or partition of such index id in unusable state这个信息告诉我们这张表是一个分区表。

    所以,我们去查下分区索引情况

      select * from dba_ind_partitions t where t.index_name =  'WRH$_EVENT_HISTOGRAM_PK';

      果然发现WRH$_EVENT__1411280035_0这个分区失效了

      重建分区索引,删除历史数据

        SQL> alter index SYS.WRH$_EVENT_HISTOGRAM_PK rebuild partition WRH$_EVENT__1411280035_0 ;
        Index altered.
        SQL> delete
        2 from sys.WRH$_EVENT_HISTOGRAM a
        3 where not exists
        4 (select 1
        5 from sys.wrm$_snapshot b
        6 where a.snap_id = b.snap_id
        7 and a.dbid = b.dbid
        8 and a.instance_number = b.instance_number);
        1539488 rows deleted.
        文章转载自数据库这点小事,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论