Oracle中怎么清理SYSAUX表空间

69次阅读
没有评论

共计 2277 个字符,预计需要花费 6 分钟才能阅读完成。

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

Oracle 清理 SYSAUX 表空间

SYSAUX 表空间:为 SYSTEM 表空间的辅助表空间,主要存放 EM 相关的内容以及表统计信息,AWR 快照,审计信息等。如果 SYSAUX 表空间空间满了,并不会影响主要业务,但是如果数据库频繁收集统计信息,那就会可能出问题,甚至由于收集统计信息 hang 住,导致数据不可用,对于 SYSAUX 表空间,也要定期进行检查,确保还有空余空间,如果空间满了,需要删除统计信息以及 AWR 快照等。ORA-1691: unable to extend lobsegment SYS.SYS_LOB0000000208C00005$$ by 128 in tablespace sysaux
 查询 SYSAUX 表空间使用情况:COL Item FOR A30
COL Schema FOR A30
SELECT occupant_name  Item ,
 space_usage_kbytes / 1048576  Space Used (GB) ,
 schema_name  Schema ,
 move_procedure  Move Procedure 
FROM v$sysaux_occupants
 ORDER BY 2 desc

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

 查询 SYSAUX 表空间中具体哪个表占用率大:select * from (select segment_name,SEGMENT_TYPE,sum(bytes)/1024/1024 total_mb from dba_segments where tablespace_name =
 SYSAUX  group by segment_name,SEGMENT_TYPE order by 3 desc)
where rownum 
 查询快照信息:SELECT MIN(SNAP_ID),MAX(SNAP_ID) FROM DBA_HIST_SNAPSHOT;
 清理 SYSAUX 表空间:1.  创建临时表,保存近 8 天的数据
create table mingshuo.ash_bak_20190610 as select * from sys.WRH$_ACTIVE_SESSION_HISTORY where SAMPLE_TIME =sysdate-9;
SQL  select count(*) from mingshuo.ash_bak_20190610;
 COUNT(*)
----------
 12648
1 row selected.
2.  禁用 AWR
exec dbms_workload_repository.modify_snapshot_settings(interval =  0);
3. truncate WRH$_ACTIVE_SESSION_HISTORY
TRUNCATE TABLE sys.WRH$_ACTIVE_SESSION_HISTORY;
4. truncate  完成后,重建  WRH$_ACTIVE_SESSION_HISTORY 表的索引,并从备份表恢复数据
insert into sys.WRH$_ACTIVE_SESSION_HISTORY select * from mingshuo.ash_bak_20190610;
commit;
5.  查看索引状态
set line 300 pages 200
col owner for a20
col index_name for a30
select index_owner,
index_name,
partition_name,
status,
tablespace_name,
last_analyzed
from dba_ind_partitions
where index_name in (select index_name
from dba_indexes
where table_name in (WRH$_ACTIVE_SESSION_HISTORY)
and table_owner =  SYS 
6.  如果索引失效重建索引(测试的时候是没有失效的,索引为本地索引)alter index sys.WRH$_ACTIVE_SESSION_HISTORY_PK rebuild parallel 8 nologging;
alter index sys.WRH$_ACTIVE_SESSION_HISTORY_PK noparallel;
7.  启动 AWR
exec dbms_workload_repository.modify_snapshot_settings(interval =  60);
8.  测试 awr 和 ash 可能正常生成
--- 手动生成 snapshot
exec dbms_workload_repository.create_snapshot;
@?/rdbms/admin/awrrpt
@?/rdbms/admin/ashrpt
9.  删除备份表
drop table mingshuo.ash_bak_20190610 purge;

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

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计2277字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)