Oracle SYSAUX空間問題解決

2021-08-20 13:04:07 字數 4277 閱讀 1203

通過修改了awr收集頻率之後(發現sysaux表空間還是占用嚴重。

下面介紹一下如何清理sysaux表空間

一.清理sysaux下的歷史統計資訊

1.將歷史統計資訊保留時間設為無限

exec dbms_stats.alter_stats_history_retention(-1);

2.truncate較大的table

truncate table sys.wri$_optstat_histhead_history;

truncate table sys.wri$_optstat_histgrm_history;

3.清理歷史統計資訊

exec dbms_stats.purge_stats(sysdate-101);

exec dbms_stats.purge_stats(sysdate-51);

exec dbms_stats.purge_stats(sysdate-5);

4.將歷史統計資訊保留時間設為10天

exec dbms_stats.alter_stats_history_retention(10);

5.將歷史統計資訊相關的表進行move

alter table sys.wri$_optstat_histhead_history move tablespace sysaux;

alter index sys.i_wri$_optstat_hh_obj_icol_st rebuild online;

alter index sys.i_wri$_optstat_hh_st rebuild online;

alter table sys.wri$_optstat_histgrm_history move tablespace sysaux;

alter index sys.i_wri$_optstat_h_obj#_icol#_st rebuild online;

alter index sys.i_wri$_optstat_h_st rebuild online;

alter table sys.wri$_optstat_ind_history move tablespace sysaux;

alter index sys.i_wri$_optstat_ind_obj#_st rebuild online;

alter index sys.i_wri$_optstat_ind_st rebuild online;

alter table sys.wri$_optstat_tab_history move tablespace sysaux;

alter index sys.i_wri$_optstat_tab_obj#_st rebuild online;

alter index sys.i_wri$_optstat_tab_st rebuild online;

alter table sys.wri$_optstat_opr move tablespace sysaux;

alter table sys.wri$_optstat_aux_history move tablespace sysaux;

alter index sys.i_wri$_optstat_aux_st rebuild online;

alter index sys.i_wri$_optstat_opr_stime rebuild online;

6.對move表的統計資訊進行收集

exec dbms_stats.gather_table_stats(ownname => 『sys』,tabname => 『wri$_optstat_histhead_history』,cascade => true);

exec dbms_stats.gather_table_stats(ownname => 『sys』,tabname => 『wri$_optstat_histgrm_history』,cascade => true);

exec dbms_stats.gather_table_stats(ownname => 『sys』,tabname => 『wri$_optstat_ind_history』,cascade => true);

exec dbms_stats.gather_table_stats(ownname => 『sys』,tabname => 『wri$_optstat_tab_history』,cascade => true);

exec dbms_stats.gather_table_stats(ownname => 『sys』,tabname => 『wri$_optstat_opr』,cascade => true);

exec dbms_stats.gather_table_stats(ownname => 『sys』,tabname => 『wri$_optstat_aux_history』,cascade => true);

二.清理syaux下的無效ash資訊

1.檢查是否有無效的ash資訊

select count(*)

from sys.wrh$_active_session_history a

where not exists (select 1

from sys.wrm$_snapshot b

where a.snap_id = b.snap_id

and a.dbid = b.dbid

and a.instance_number = b.instance_number);

2.清理無效的ash資訊

delete

from sys.wrh$_active_session_history a

where not exists (select 1

from sys.wrm$_snapshot b

where a.snap_id = b.snap_id

and a.dbid = b.dbid

and a.instance_number = b.instance_number);

3.對ash表清理後的碎片整理

alter table sys.wrh$_active_session_history enable row movement;

alter table sys.wrh$_active_session_history shrink space cascade;

alter table sys.wrh$_active_session_history disable row movement;

4.收集碎片整理後表的統計資訊

exec dbms_stats.gather_table_stats(ownname => 『sys』,tabname => 『wrh$_active_session_history』,cascade => true);

3.檢查表空間可收縮的的位置

select a.file#,

a.name,

a.bytes / 1024 / 1024 mb,

ceil(hwm * a.block_size) / 1024 / 1024 resizeto,

『alter database datafile 」』 || a.name || 」』 resize 『 ||

(trunc(ceil(hwm * a.block_size) / 1024 / 1024)+20) || 『m;』 resizecmd

from v$datafile a,

(select c.file_id, max(c.block_id + c.blocks – 1) hwm

from dba_extents c

group by file_id) b

where a.file# = b.file_id

and a.tablespace=』sysaux』

order by 5;

三.sysaux清理後的檢查

1.清理後的無效index檢查

select * from dba_indexes where status<>『valid』 and status<>『n/a』;

select * from dba_ind_partitions where status<>『usable』 and status<>『n/a』;

select * from dba_ind_subpartitions where status<>『usable』;

上面語句應均無資料返回,如有則對這些index進行重建

2.清理後的index並行度檢查

select * from dba_indexes where degree not in (』1′,』0′,』default』);

關於DropDownList空間的繫結問題

1.我用dropdownlist後台動態繫結listitem之後 繫結 如下 void bindsendtime else if i 0 string date dtime.year 年 dtime.month 月 dtime.day 日 time listitem li new listitem ...

ubuntu下解決boot分割槽空間不足問題

我們使用ubuntu系統的時候,總會在一段時間後,顯示類似這樣的問題the volume boot has only 5.2 mb disk space remaining。在 boot目錄下佔記憶體比較大的是我們linux系統的核心映象,因此我們可以通過刪除核心映象來釋放一部分空間。我們使用下列 ...

解決Oracle下的undo空間過大的問題

如果undo表空間undotbs不能釋放空間,重建之 建立備用undo表空間 create undo tablespace newundotbs datafile ora data newundotbs01.dbf size 1000m 切換undo表空間 alter system set undo...