ITPub博客

首页 > 数据库 > Oracle > sysaux表空间爆满,`WRH$_ACTIVE_SESSION_HISTORY`表无限制增长-问题记录

sysaux表空间爆满,`WRH$_ACTIVE_SESSION_HISTORY`表无限制增长-问题记录

原创 Oracle 作者:数据银河漫游 时间:2026-03-13 15:47:28 0 删除 编辑

**环境**:oracle11g


**现象**:

如标题所述,sysaux表空间爆满,而其中主要空间占用时`WRH$_ACTIVE_SESSION_HISTORY`。


**处理**:

先说最后怎么处理方法,因为知道这个表存放的是性能诊断用到的数据,相对没有很重要,所以直接截断掉

```

TRUNCATE TABLE WRH$_ACTIVE_SESSION_HISTORY;

```

这个方法肯定是过于简单粗暴,如果有大佬看完后面的原因分析,**有更好的办法,拜谢指点**。


**why**:

任何事有问题,都要追问一句,正常应该是什么样,这个表的自动清理策略用下面sql可以查看:

```

SELECT * FROM dba_hist_wr_control;

```


| DBID          | SNAP_INTERVAL     | RETENTION         | TOPNSQL |

| ------------- | ----------------- | ----------------- | ------- |

| 3187213348.00 | +00000 01:00:00.0 | +00008 00:00:00.0 | DEFAULT |


其中RETENTION,说明数据保留最近8天的


实际上呢?


```

SELECT min(sample_time) FROM sys.WRH$_ACTIVE_SESSION_HISTORY;

```


最老的记录都追溯到22年了。自动清理机制完全失效。这时我去问ai,清理机制的实现机制是什么,其实也简单:


>后台进程 (MMON) 会定期将这张表“切分(Split)”成多个小分区(比如按天或按快照 ID 范围切分)。当某个分区里的**所有快照**都超过了 8 天(你的保留策略),Oracle 就会直接执行 `DROP PARTITION`,把整个分区连同空间一起瞬间删掉。


然后我去看看现在的分区情况,直接破案:


```

SELECT partition_name, high_value 

FROM dba_tab_partitions 

WHERE table_name = 'WRH$_ACTIVE_SESSION_HISTORY';

```


| PARTITION_NAME               | HIGH_VALUE           | NUM_ROWS    |

| ---------------------------- | -------------------- | ----------- |

| WRH$_ACTIVE_3187213348_21486 | 3187213348, 50546    | 53806014.00 |

| WRH$_ACTIVE_3187213348_50546 | 3187213348, MAXVALUE |             |

| WRH$_ACTIVE_SES_MXDB_MXSN    | MAXVALUE, MAXVALUE   | 0.00        |


规则是:**只有当一个分区里所有的数据都过期了**。现在所有数据都放到一个分区,当然没法做清理。


顺便一提,调用官方提供的清理sql,在这种情况也没有作用,只是delete,不释放空间


```

BEGIN

  dbms_workload_repository.drop_snapshot_range(

    low_snap_id  => 1,      

    high_snap_id => 100     

  );

END;

/

```


变成这样原因已经不知道,ai给的猜测:


```

你的系统由于某种原因(可能是某次表空间临时满了、系统 Bug 或索引失效),AWR 停止了自动创建新分区。

```


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049647/viewspace-3112267/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2026-03-13

  • 博文量
    5
  • 访问量
    6049