Oracle SYSAUX表空间使用率过高的处理办法
作者:冥净
Oracle数据库中的SYSAUX表空间是一个特殊的表空间,它是在Oracle数据库10g版本中引入的,SYSAUX表空间用于存储数据库的辅助系统数据和附加组件数据,在本文中,我们将深入探讨Oracle SYSAUX表空间使用率过高的处理办法,需要的朋友可以参考下
1、维护需求
日常巡检发现工单数据库中SYSAUX表空间使用率达到95%
对于SYSAUX表空间而言,如果占用过大,那么一般情况下是由于AWR信息或对象统计信息没有及时清理引起的
2、通过SQL语句查询SYSAUX表空间占用
SQL> SELECT OCCUPANT_NAME "Item",SPACE_USAGE_KBYTES / 1048576 "Space Used (GB)",SCHEMA_NAME "Schema",MOVE_PROCEDURE "Move Procedure"FROM V$SYSAUX_OCCUPANTS WHERE SPACE_USAGE_KBYTES > 1048576 ORDER BY "Space Used (GB)" DESC;
如果OCCUPANT_NAME列为SM/AWR(Server Manageability - Automatic Workload Repository),那么表示AWR信息占用过大;如果该列为SM/OPTSTAT(Server Manageability - Optimizer Statistics History),那么表示优化器统计信息占用过大。如上截图,是AWR信息过大。
3、直接查询出是哪些表分区占用SYSAUX表空间较高
SQL> select distinct 'truncate table '||segment_name||';',s.bytes/1024/1024 from dba_segments s where s.segment_name like 'WRH$%' and segment_type in ('TABLE PARTITION', 'TABLE') and s.bytes/1024/1024>100 order by s.bytes/1024/1024/1024 desc;
4、然后直接truncate这些表
5、再次查看SYSAUX表空间使用量
到此这篇关于Oracle SYSAUX表空间使用率过高的处理办法的文章就介绍到这了,更多相关Oracle SYSAUX表空间使用率内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!