這篇文章將為大家詳細講解有關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 <=20;
查詢快照信息: 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表空間就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。