SYSTEM表空間AUD$使用空間過大問題處理


問題現象:SYSTEM表空間使用率超99%,前期設計時SYSTEM表空間是10G固定大小不允許自動擴展。

1.查詢SYSTEM表空間的使用率

set linesize 200
col TABLESPACE_NAME for a25
col SUM_SPACE(M) for a20
col USED_SPACE(M) for a20
col USED_RATE(%) for a20
col FREE_SPACE(M) for a20

SELECT D.TABLESPACE_NAME,
       SPACE || 'M' "SUM_SPACE(M)",
       BLOCKS "SUM_BLOCKS",
       SPACE - NVL (FREE_SPACE, 0) || 'M' "USED_SPACE(M)",
       ROUND ( (1 - NVL (FREE_SPACE, 0) / SPACE) * 100, 2) || '%'
          "USED_RATE(%)",
       FREE_SPACE || 'M' "FREE_SPACE(M)"
  FROM (  SELECT TABLESPACE_NAME,
                 ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,
                 SUM (BLOCKS) BLOCKS
            FROM DBA_DATA_FILES
        GROUP BY TABLESPACE_NAME) D,
       (  SELECT TABLESPACE_NAME,
                 ROUND (SUM (BYTES) / (1024 * 1024), 2) FREE_SPACE
            FROM DBA_FREE_SPACE
        GROUP BY TABLESPACE_NAME) F
 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
  AND D.TABLESPACE_NAME = 'SYSTEM';

2.查詢SYSTEM表空間中各個段占用空間情況

SELECT OWNER, SEGMENT_NAME, SEGMENT_TYPE, SUM(BYTES)/1024/1024
  FROM DBA_SEGMENTS
 WHERE TABLESPACE_NAME = 'SYSTEM'
 GROUP BY OWNER, SEGMENT_NAME, SEGMENT_TYPE
 ORDER BY 4;

3.截斷占用空間最大的AUD$表(需要和DBA確認后操作)

truncate table AUD$;

4.查詢AUD$表的表空間

 SELECT OWNER, TABLE_NAME, TABLESPACE_NAME  
  FROM DBA_TABLES  
   WHERE TABLE_NAME = 'AUD$'  
   AND OWNER = 'SYS';  

5.更改AUD$表的表空間為其他表空間(選做)

BEGIN  
 DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(  
  AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,   
  AUDIT_TRAIL_LOCATION_VALUE => '&AUD_TBS_NAME');  
END;  
/  


免責聲明!

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



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