oracle 11 g AUD$メンテナンス


SYSTEM表領域の使用率は85%に達し,監査記録を記録するためのaud$表が大きな空間を占めていることが分かった.
バックアップ後、truncateはAUD$を落とし、問題は一時的に解決します.覚えてるoracle 11.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