一、基础环境
操作系统:Windows 或 Linux
数据库版本:Oracle Database 11.2.0.1.0 及以上版本
二、解决问题
Oracle 11g 安装后会默认开启数据库审计功能,并且日志保存在 SYSTEM 表空间中。导致SYSTEM 空间越来越大。当表空间已满时,会导致无法连接数据库。建议数据库安装完成之后将此功能关闭,当需要时候再进行开启。
三、参数说明
审计功能由参数 audit_trail 进行控制,取值范围及意义如下:
参数取值 | 说明 |
DB | (默认)开启审计功能。 |
OS | 将审计记录写入操作系统的一个文件 |
TRUE | 开启审计功能。 |
FALSE | 关闭审计功能。 |
NONE | 关闭审计功能。 |
四、操作步骤
1、查看审计功能是否开启。
a)以 DBA 的身份登陆SQL plus ,以下所有命令均在此模式下执行;
sqlplus / as sysdba
b) 查看 audit_trail 的值
SHOW PARAMETER AUDIT
c) 查询结果:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string D:\PROGRAMFILES\ORACLE\ADMIN\O
RCL\ADUMP
audit_sys_operations boolean FALSE
audit_trail string DB
d) 根据查询结果可知,已经开启数据库审计功能。
2、关闭数据库审计功能。
a) 执行以下语句关闭数据库审计功能。
ALTER SYSTEM SET AUDIT_TRAIL='NONE' SCOPE=SPFILE;
b) 重启数据库,以下命令相当于 shutdown abort + startup
STARTUP FORCE
c) 重新执行 1 - c) 的步骤查看 audit_trail 的值。
3、开启数据库审计功能。
a) 执行以下语句开启数据库审计功能。
ALTER SYSTEM SET AUDIT_TRAIL='DB' SCOPE=SPFILE;
b) 重启数据库,以下命令相当于 shutdown abort + startup
STARTUP FORCE
c) 重新执行 1 - c) 的步骤查看 audit_trail 的值。
d) 开启数据库审计功能之后,数据库审计日志保存在 aud$ 里面。我们需要定期清空它。执行以下命令可以清空表 aud
TRUNCATE TABLE SYS.AUD$;
e) 全部操作已完成。
参考资料: