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

原创 2012年03月23日 16:20:19

11gr2版本,oracle把参数audit_trail 自动设置为DB级别,导致很多数据库的操作被记录在审计表sys.aud$中,导致sys.aud$所在的表空间快速增长。可以通过TRUNCATE清空改表,同时,为了system表空间的安全,建议把改表转移至别的表空间

SQL> show parameter  audit_trail

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------

audit_trail                          string      DB

TRUNCATE TABLE sys.aud$;

由于sys.aud$有lob字段,将审计结果表从system表空间里移动到别的表空间上的操作具体如下

  实际上sys.aud$表上包含了两个lob字段,并不是简单的move table就可以。

  下面是具体的过程:

  alter table sys.aud$ move tablespace monitor;

  alter table sys.aud$ move lob(sqlbind) store as( tablespace monitor);

  alter table sys.aud$ move lob(SQLTEXT) store as( tablespace monitor);

  TRUNCATE TABLE sys.aud$;


附录:关于SYS.AUD$的删除操作

a) To delete rows from the database audit trail table, an appropriate privilege
   is required. You must either be the user SYS, or a user with DELETE ANY TABLE
   system privilege, or a user to whom SYS has granted the object privilege
   DELETE on SYS.AUD$.

b) To purge audit records from the audit trail, delete all rows:


   -- DELETE FROM sys.aud$;

   To delete rows from the audit trail related to a particular audited table:

   -- DELETE FROM sys.aud$ WHERE obj$name='';

c) If audit trail information must be archived, copy the relevant rows to another
   table before deletion, using either:

   -- CREATE TABLE  
      AS SELECT * from sys.aud$ WHERE 1=2;

   -- INSERT INTO  
      SELECT  FROM sys.aud$

   -- EXPort the  to an OS file, but do not export SYS.AUD$
      directly.

d) Reducing the size of the audit trail:

   1. If you want to save information currently in the audit trail, copy it to
      another table and optionally export that table.

   2. SQL> connect / as sysdba
      SQL> TRUNCATE TABLE sys.aud$;
   
      Truncate uses the DROP STORAGE clause which keeps 'minextents' extents,
      thus only 1 extent.

   3. Reload archived audit trail records generated from Step 1.

   The rows inserted require as many extents as necessary to contain current
   audit trail rows, but no more.

   CAUTION: SYS.AUD$ is the only SYS object that should ever be directly modified
The DELETE ANY TABLE privilege only applies to SYS objects if O7_DICTIONARY_ACCESSIBILITY=TRUE

相关文章推荐

日志缓冲区(redo log buffer)及日志写进程(LGWR)剖析

日志缓冲区(redo log buffer)及日志写进程(LGWR)剖析 REDO LOG BUFFER: 日志中记录数据块的地址,更改的时间以及对数据块做了哪些改变。 Or...

Oracle登录 ORA-01033: ORACLE正在初始化或关闭的解决办法

Oracle登录 ORA-01033: ORACLE正在初始化或关闭的解决方法  Oracle存在多实例   相应的在DOS命令下执行: 1. 设置正确的ORACLE实例:...

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

oracle 11g的audit导致system表空间快速增长的问题                       分类:             oracle              20...

oracle 11g linux 建立表空间 用户 授权 数据库导入导出

sqlplus     /as sysdba   查看dbf存放位置 select * from dba_data_files;     -- 新建表空间 create tablesp...
  • tegwy
  • tegwy
  • 2012年02月22日 14:13
  • 5893

(总结)Oracle 11g常用管理命令(用户、表空间、权限)

(总结)Oracle 11g常用管理命令(用户、表空间、权限) 发表于: DataBase, Linux, Oracle, Shell, 个人日记, 原创总结 | 作者: 谋万世全局者...

oracle 11g 创建表空间

oracle安装的时候,根据配置会默认创建一个叫做“orcl”的实例; 实际业务应用中,我们更愿意创建自己的实例来持久化业务数据; 下面我们就讲解这个基本步骤来创建自己的实例——表空间; 我们在...

Oracle 11g Undo 表空间切换

--1、查看实例当前所用 undo 表空间及 undo 相关参数 SQL> show parameter undo NAME                            ...

oracle 11g 表空间迁移 实验过程

参考文档:在复制或移动表空间前,用户首先将表空间置于只读状态,再复制表空间的数据文件(datafile),最后使用export/import工具迁移位于数据字典(data dictionary)中的数...

Oracle 11g 学习3——表空间操作

一、表空间概述          表空间是Oracle中最大的逻辑存储结构,与操作系统中的数据文件相对应;          基本表空间:一般指用户使用的永久性表空间,用于存储用户的永久性数据    ...

Oracle 11g R2 DBA 操作指南(13) 表空间与数据文件管理

(逻辑结构)一个数据库有一个或多个表空间,一个表空间有一个或多个段,而一个段由一个或多个区段组成,一个区段由多个数据库块组成,一个数据库块由多个操作系统数据库块组成。 (物理结构)一个表空间有一个或...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle 11g的audit导致system表空间快速增长的问题
举报原因:
原因补充:

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