oracle 11g sysaux表空間使用率非常高的問題解決


一般來講除開業務數據存放的表空間,DBA要着重關注SYSTEM,SYSAUX,UNDO,TEMP表空間,SYSTEM表空間的大小一般是衡定的,UNDO和TEMP表空間的大小由數據庫的業務情況決定,而SYSAUX表空間在默認條件下你如果不做任何配置,隨着時間的推移,會膨脹的越來越大!SYSAUX表空間做為SYSTEM表空間的輔助表空間,主要存放EM相關的內容以及表統計信息,AWR快照,審計信息等,個人認為,如果你的SYSAUX表空間大小超過2G,那么該考慮讓他減肥了! 

一:使用下列語句查詢表空間使用率 
  1. SELECT * FROM ( 
  2. SELECT D.TABLESPACE_NAME, 
  3.         SPACE || 'M' "SUM_SPACE(M)", 
  4.         BLOCKS "SUM_BLOCKS", 
  5.         SPACE - NVL (FREE_SPACE, 0) || 'M' "USED_SPACE(M)", 
  6.         ROUND ( (1 - NVL (FREE_SPACE, 0) / SPACE) * 100, 2) || '%' 
  7.            "USED_RATE(%)", 
  8.         FREE_SPACE || 'M' "FREE_SPACE(M)" 
  9.    FROM (  SELECT TABLESPACE_NAME, 
  10.                   ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE, 
  11.                   SUM (BLOCKS) BLOCKS 
  12.              FROM DBA_DATA_FILES 
  13.          GROUP BY TABLESPACE_NAME) D, 
  14.         (  SELECT TABLESPACE_NAME, 
  15.                   ROUND (SUM (BYTES) / (1024 * 1024), 2) FREE_SPACE 
  16.              FROM DBA_FREE_SPACE 
  17.          GROUP BY TABLESPACE_NAME) F 
  18.   WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+) 
  19.  UNION ALL                                                           
  20.  SELECT D.TABLESPACE_NAME, 
  21.         SPACE || 'M' "SUM_SPACE(M)", 
  22.         BLOCKS SUM_BLOCKS, 
  23.         USED_SPACE || 'M' "USED_SPACE(M)", 
  24.         ROUND (NVL (USED_SPACE, 0) / SPACE * 100, 2) || '%' "USED_RATE(%)", 
  25.         NVL (FREE_SPACE, 0) || 'M' "FREE_SPACE(M)" 
  26.    FROM (  SELECT TABLESPACE_NAME, 
  27.                   ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE, 
  28.                   SUM (BLOCKS) BLOCKS 
  29.              FROM DBA_TEMP_FILES 
  30.          GROUP BY TABLESPACE_NAME) D, 
  31.         (  SELECT TABLESPACE_NAME, 
  32.                   ROUND (SUM (BYTES_USED) / (1024 * 1024), 2) USED_SPACE, 
  33.                   ROUND (SUM (BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE 
  34.              FROM V$TEMP_SPACE_HEADER 
  35.          GROUP BY TABLESPACE_NAME) F 
  36.   WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+) 
  37.  ORDER BY 1)  
  38.  WHERE TABLESPACE_NAME IN ('SYSAUX','SYSTEM','UNDOTBS1','TEMP'); 
二:查詢SYSAUX表空間內各個分類項目占存儲空間的比重,很明顯可以看出來AWR快照占用了2G左右的空間,統計信息為149M左右,同時數據庫關閉了審計audit_trail,所以審計表aud$不占空間 
  1. SELECT occupant_name "Item", 
  2.        space_usage_kbytes / 1048576 "Space Used (GB)", 
  3.        schema_name "Schema", 
  4.        move_procedure "Move Procedure" 
  5.   FROM v$sysaux_occupants 
  6. ORDER BY 1

~~~~~~~~~~~~~~臨時刪除的辦法~~~~~~~~~~~~~~~··

truncate  table  WRH$_ACTIVE_SESSION_HISTORY;
truncate  table  WRH$_EVENT_HISTOGRAM;
truncate  table  WRH$_SQLSTAT;
truncate  table  WRH$_LATCH_MISSES_SUMMARY;
truncate  table  WRH$_LATCH;
truncate  table  WRH$_SYSSTAT;
truncate  table  WRH$_SEG_STAT;
truncate  table  WRH$_PARAMETER;
truncate  table  WRH$_SYSTEM_EVENT;
truncate  table  WRH$_SQL_PLAN;
truncate  table  WRH$_DLM_MISC;
truncate  table  WRH$_SERVICE_STAT;
truncate  table  WRH$_TABLESPACE_STAT;
truncate  table  WRH$_ROWCACHE_SUMMARY;
truncate  table  WRH$_MVPARAMETER;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~···

select distinct 'truncate  table  '||segment_name||';',s.bytes/1024/1024
  from dba_segments s
 where s.segment_name like 'WRH$%'
   and segment_type in ('TABLE PARTITION', 'TABLE')
   and s.bytes/1024/1024>100
   order by s.bytes/1024/1024/1024 desc;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM