11.2中,Oracle对于AUDIT记录的清除工作进行了增强。

这一篇介绍将AUDIT记录迁移出SYSTEM表空间。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 

Oracle提供了AUDIT功能以来,存在两种AUDIT记录的存储方式,操作系统存储或数据库存储,如果采用数据库存储,那么AUDIT记录被存放在SYSTEM表空间的AUD$系统表中。但是如果系统使用审计功能很频繁,就会产生大量的审计信息,从而给SYSTEM表空间带来压力。

11.2开始,Oracle终于可以将AUDIT记录迁移到SYSTEM以外的表空间了:

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

OWNER                          TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
SYS                            AUD$                           SYSTEM

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 => 'YANGTK');
  5  END;
  6  /

PL/SQL 过程已成功完成。

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

OWNER                          TABLE_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
SYS                            AUD$                           YANGTK

这样就可以避免大量的审计记录将系统表空间占满。


扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄