这篇文章将为大家详细讲解有关Oracle中怎么清理SYSAUX表空间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Oracle 清理SYSAUX表空间

SYSAUX表空间:为SYSTEM表空间的辅助表空间,主要存放EM相关的内容以及表统计信息,AWR快照,审计信息等。如果SYSAUX表空间空间满了,并不会影响主要业务,但是如果数据库频繁收集统计信息,那就会可能出问题,甚至由于收集统计信息hang住,导致数据不可用,对于SYSAUX表空间,也要定期进行检查,确保还有空余空间,如果空间满了,需要删除统计信息以及AWR快照等。ORA-1691:unabletoextendlobsegmentSYS.SYS_LOB0000000208C00005$$by128intablespacesysaux

查询SYSAUX表空间使用情况:COLItemFORA30COLSchemaFORA30SELECToccupant_name"Item",space_usage_kbytes/1048576"SpaceUsed(GB)",schema_name"Schema",move_procedure"MoveProcedure"FROMv$sysaux_occupantsORDERBY2desc

SM/AWR:如果它的值大那么表示AWR信息容量大。
SM/OPTSTAT:如果它的值大那么表示优化器统计信息容量大。

查询SYSAUX表空间中具体哪个表占用率大:select*from(selectsegment_name,SEGMENT_TYPE,sum(bytes)/1024/1024total_mbfromdba_segmentswheretablespace_name='SYSAUX'groupbysegment_name,SEGMENT_TYPEorderby3desc)whererownum<=20;

查询快照信息:SELECTMIN(SNAP_ID),MAX(SNAP_ID)FROMDBA_HIST_SNAPSHOT;

清理SYSAUX表空间:1.创建临时表,保存近8天的数据createtablemingshuo.ash_bak_20190610asselect*fromsys.WRH$_ACTIVE_SESSION_HISTORYwhereSAMPLE_TIME>=sysdate-9;SQL>selectcount(*)frommingshuo.ash_bak_20190610;COUNT(*)----------126481rowselected.2.禁用AWRexecdbms_workload_repository.modify_snapshot_settings(interval=>0);3.truncateWRH$_ACTIVE_SESSION_HISTORYTRUNCATETABLEsys.WRH$_ACTIVE_SESSION_HISTORY;4.truncate完成后,重建WRH$_ACTIVE_SESSION_HISTORY表的索引,并从备份表恢复数据insertintosys.WRH$_ACTIVE_SESSION_HISTORYselect*frommingshuo.ash_bak_20190610;commit;5.查看索引状态setline300pages200colownerfora20colindex_namefora30selectindex_owner,index_name,partition_name,status,tablespace_name,last_analyzedfromdba_ind_partitionswhereindex_namein(selectindex_namefromdba_indexeswheretable_namein('WRH$_ACTIVE_SESSION_HISTORY')andtable_owner='SYS');6.如果索引失效重建索引(测试的时候是没有失效的,索引为本地索引)alterindexsys.WRH$_ACTIVE_SESSION_HISTORY_PKrebuildparallel8nologging;alterindexsys.WRH$_ACTIVE_SESSION_HISTORY_PKnoparallel;7.启动AWRexecdbms_workload_repository.modify_snapshot_settings(interval=>60);8.测试awr和ash可能正常生成---手动生成snapshotexecdbms_workload_repository.create_snapshot;@?/rdbms/admin/awrrpt@?/rdbms/admin/ashrpt9.删除备份表droptablemingshuo.ash_bak_20190610purge;

关于Oracle中怎么清理SYSAUX表空间就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。