oracle SYSTEM表空间AUD$使用空间过大问题解决方法行业动态

首页 行业动态 oracle SYSTEM表空间AUD$使用空间过大问题解决方法

oracle SYSTEM表空间AUD$使用空间过大问题解决方法

2018-05-04 16:13:27


详情:

oracle问题现象: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;  
/


相关 教程

12c OCM升级培训

12c OCM升级培训

11g OCM于2019年12月31日退役,12c OCM成为目前最新、最高版本的Oracle DBA认证。含金量无出其右。}

11g OCP培训

11g OCP培训

11g OCP培训}

OCJP认证培训

OCJP认证培训

OCJP认证培训}

网上报名 免费试学+报名即可领取免费资料

收缩

QQ在线客服

  • 刘老师
  • 在线咨询
  • 麦老师
  • 在线咨询
  • 黄老师
  • 在线咨询
在线免费试课
获取免费课程视频资料