共計 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 表空間就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
正文完