直接清理wrh$开头的分区表可最快释放sysaux空间,但须先确认保留策略与分区状态,查v$sysaux_occupants定位占用大户(如sm/advisor、audsys),重点处理wrh$_active_session_history,用truncate partition安全清理并检查快照依赖,再处理索引分区及物理文件收缩。

直接清理 WRH$ 开头的分区表能最快释放 SYSAUX 空间,但必须先确认保留策略和分区状态,否则可能触发不可逆的数据丢失或后续快照失败。
查清谁在占空间:先跑 v$sysaux_occupants
别急着删,先看 SYSAUX 里到底谁吃掉了最多空间。这个视图能快速列出所有“住户”及其用量:
-
SM/ADVISOR(优化器统计历史)和AUDSYS(统一审计)在 19c+ 版本中常排前两位,不一定是 AWR - 如果
AWR或SM/AWR占比超 60%,再深入查 AWR 相关段 - 注意
move_procedure列:值为DBMS_AWRF_INTERNAL.MOVE_WRR的表示支持安全迁移,不是所有对象都适合直接TRUNCATE PARTITION
定位大头表:重点盯 WRH$_ACTIVE_SESSION_HISTORY
它通常是 SYSAUX 里最大的单个对象,尤其在高负载库中动辄几十 GB。查它的真实大小和分区结构:
- 用
dba_segments查总大小:SELECT segment_name, partition_name, bytes/1024/1024/1024 size_gb FROM dba_segments WHERE segment_name LIKE 'WRH$_ACTIVE_SESSION_HISTORY%' AND tablespace_name = 'SYSAUX' ORDER BY size_gb DESC - 检查分区命名规律:
WRH$_ACTIVE_1234567890_0是标准格式,数字部分是 DBID + SNAP_ID 范围,末尾_0表示基础分区 - 不要碰
WRH$_ACTIVE_SES_MXDB_MXSN这类特殊分区——它是内存映射伪分区,删了会报ORA-14125
安全清理:用 TRUNCATE PARTITION 而非 DROP
TRUNCATE PARTITION 是唯一推荐的在线清理方式,它不走回滚段、不产生大量 redo,且不影响其他分区和 AWR 功能:
- 语法必须带完整 schema:
ALTER TABLE sys.WRH$_ACTIVE_SESSION_HISTORY TRUNCATE PARTITION WRH$_ACTIVE_1234567890_0 - 执行前确认该分区无活跃快照依赖:
SELECT MIN(snap_id), MAX(snap_id) FROM dba_hist_snapshot WHERE dbid = 1234567890—— 若结果范围覆盖该分区,说明仍有历史报告引用,强行截断会导致ORA-13505 - 一次只截一个分区,观察空间释放效果和数据库负载;批量操作建议写脚本加
SLEEP间隔,避免 latch contention
别漏掉索引和主键:它们也占空间
清理表分区后,对应索引分区不会自动收缩,WRH$_ACTIVE_SESSION_HISTORY_PK 可能还占几 GB:
- 查索引分区大小:
SELECT index_name, partition_name, bytes/1024/1024 size_mb FROM dba_segments WHERE segment_type = 'INDEX PARTITION' AND index_name LIKE 'WRH$_ACTIVE_SESSION_HISTORY%' AND tablespace_name = 'SYSAUX' - 重建索引分区不现实(锁表+耗时),更有效的是等下次 AWR 自动维护窗口触发索引重组,或手动
ALTER INDEX ... MODIFY DEFAULT ATTRIBUTES FOR PARTITION ...调整存储参数 - 真正要警惕的是
WRH$_SYSSTAT_PK—— 它常比基表还大,若发现它异常膨胀,大概率是统计信息收集任务卡住,需查dba_scheduler_job_log中GATHER_STATS_JOB状态
最易被忽略的点:TRUNCATE PARTITION 后空间不会立即归还给操作系统,而是留在 SYSAUX 表空间内供后续使用;如果急需释放物理文件空间,得配合 ALTER DATABASE DATAFILE ... RESIZE 手动收缩数据文件——但这要求文件末尾全是空闲块,实际中往往需要先做 DBMS_SPACE_ADMIN.TABLESPACE_REBUILD_QUOTAS 整理碎片。











