oracle11g AUD$维护

原创 2012年03月26日 13:21:39

SYSTEM表空间使用率达到了85%,查出是用来记录审计记录的aud$表占用了很大的空间。

备份后truncate掉AUD$,问题临时解决。记得oracle11.2可以把aud$迁移到普通的表空

间。于是试了一把,果然ok。


1.检查SYSTEM表空间使用情况

SQL*Plus: Release 11.2.0.3.0 Production on Mon Mar 26 11:21:18 2012
Copyright (c) 1982, 2011, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Data Mining and Real Application Testing options


SQL>  select  
  2   b.tablespace_name "表空间",
  3  b.bytes/1024/1024 "大小M",
  4  (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 "已使用M",
  5  substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) "利用率"
  6  from dba_free_space a,dba_data_files b
  7  where a.file_id=b.file_id
  8    and b.tablespace_name='SYSTEM'
  9  group by b.tablespace_name,b.file_name,b.bytes
  10  order by b.tablespace_name;
 
表空间                 大小M       已使用M   利用率
------------------- ---------- ----------- ----------
SYSTEM                    4096   3485.9375    85.10

2.从dba_segments中找出占用SYSTEM表空间中排名前10位的大对象。

SQL> col segment_name for a15;
SQL> SELECT *
  2    FROM (SELECT SEGMENT_NAME, SUM(BYTES) / 1024 / 1024 MB
  3            FROM DBA_SEGMENTS
  4           WHERE TABLESPACE_NAME = 'SYSTEM'
  5           GROUP BY SEGMENT_NAME
  6           ORDER BY 2 DESC)
  7   WHERE ROWNUM < 10;
 
查出aud$占用的很大的空间。

3.准备truncate aud$表

SQL> show parameter AUDIT_TRAIL

NAME            TYPE        VALUE    
--------------- ----------- ---------
audit_trail     string      DB

-- truncate aud$ 表需要有相关的权限。
SQL> truncate table aud$;
Table truncated

4.truncate后检查system表空间使用情况,发现使用率由85%降低到29.44%

SQL> ANALYZE TABLE aud$  COMPUTE STATISTICS;
Table analyzed. 

SQL>  select  
 2    b.tablespace_name "表空间",
 3    b.bytes/1024/1024 "大小M",
 4    (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 "已使用M",
 5    substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) "利用率"
 6    from dba_free_space a,dba_data_files b
 7    where a.file_id=b.file_id
 8     and b.tablespace_name='SYSTEM'
 9    group by b.tablespace_name,b.file_name,b.bytes
10   order by b.tablespace_name;
 
表空间                大小M    已使用M   利用率
---------------- ---------- ----------   ----------
SYSTEM                 4096       1206   29.44


5.为了避免system表空间爆满对数据的影响,把aud$从system表空间迁移到普通表空间AUD_FILE

SQL>  BEGIN
  2   DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_LOCATION(
  3   AUDIT_TRAIL_TYPE => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, 
  4   AUDIT_TRAIL_LOCATION_VALUE => 'AUD_FILE');
  5   END;
  6  /

SQL> col owner for a5;
SQL> SELECT OWNER, TABLE_NAME, TABLESPACE_NAME
  2    FROM DBA_TABLES
  3   WHERE TABLE_NAME = 'AUD$'
  4     AND OWNER = 'SYS';

OWNER TABLE_NAME    TABLESPACE_NAME
----- ------------------------------ ------------------------------
SYS   AUD$                           TD_FILB  



oracle审计AUD$过大导致的数据库登录异常

今天,省分技术人员反映数据库登录异常。 查询oerr,发现该错误是一般性提示,可能导致的原因有数据库未注册、本地文件配置问题等。由于平时连接并没有问题,是突发情况,所以排除了配置问题...

AUD$ 引起的SYSTEM表空间过大

oracle 11g 默认审计开启DB,数据库在实际运行中,会将审计放入aud$ 中,因此SYSTEM表空间会出现的比较大,system表空间过大会影响数据库性能,因此处理方法是 (1) trunc...
  • ptzrbin
  • ptzrbin
  • 2014年01月23日 14:22
  • 5252

oracle清空aud$表的案例

某系统数据库的aud$表大小达到30G,与开发确认,这个表可以清掉。 1.先将表导出备份一下 exp "'/ as sysdba'" tables=SYS.AUD$ file=aud.dmp  l...

SYS.AUD$无法扩容导致无法登录的问题

昨天同事说有个测试库无法登录了,用PLSQL Developer登陆后提示: ERROR: ORA-00604: error occurred at recursive SQL level 1 ORA...
  • bisal
  • bisal
  • 2014年02月11日 10:14
  • 16100

oracle 11g的audit导致system表空间快速增长的问题

11gr2版本,oracle把参数audit_trail 自动设置为DB级别,导致很多数据库的操作被记录在审计表sys.aud$中,导致sys.aud$所在的表空间快速增长。可以通过TRUNCATE清...
  • hijk139
  • hijk139
  • 2012年03月23日 16:20
  • 9061

Oracle审计表AUD$数据过大问题

How to truncate or delete rows from audit trail table sys.aud$ 1)Only appropriate privileged us...

转关于“ORA-01653: 表 SYS.AUD$ 无法通过 128 (在表空间 SYSTEM 中) 扩展”的错误

SQL*Plus: Release 11.1.0.6.0 - Production on 星期一 5月 17 18:31:08 2010 Copyright (c) 1982, 2007, Or...

解决关于aud$对象导致system表空间暴涨问题

OS VERSION : LINUX 6 ORACLE VERSION : 11.2.0.4

Oracle审计表AUD$处理方法

Oracle审计表AUD$处理方法 Oracle版本:11.2.0,其他版本要测试DBMS_AUDIT_MGMT能否成功 1. 查询表,然后truncate      select count(...
  • gyanp
  • gyanp
  • 2013年07月08日 16:26
  • 7551

oracle 中 cursor 与refcursor及sys_refcursor的区别 (转载)

引用一、显式cursor 显式是相对与隐式cursor而言的,就是有一个明确的声明的cursor。显式游标的声明类似如下(详细的语法参加plsql ref doc ): cursor ...
  • gyflyx
  • gyflyx
  • 2011年10月19日 21:42
  • 16776
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle11g AUD$维护
举报原因:
原因补充:

(最多只允许输入30个字)