欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle数据库短时间磁盘空间占用超过88%问题分析

程序员文章站 2022-04-24 20:14:19
...

默认为false,当设置为true时,所有sys用户(包括以sysdba,sysoper身份登录的用户)的操作都会被记录,audit trail不会写在aud$表

1.问题描述
维护人员向中心报故障称数据库/dev/fslv00_使用率超过88%。

2.问题分析过程
经排查,发现数据库所在小型机/Oracle/admin/sid/adump/目录下产生大量*.aud文件。

aud文件为Oracle数据库审计文件,在数据库审计功能关闭的情况下,,只有通过sys用户(包括sysdba,sysoper权限用户)远程连接数据库时才会产生该文件。

经查,有个其他部门的新应用使用sys用户对数据库进行监控。

3.问题解决方案
临时解决方案:提供脚本定期删除*.aud文件
最终解决方案:将sys用户改为system用户即可

4.相关命令说明

查看哪个目录增长最快
du -ks * | sort -n

通过以下语句可以查看数据库审计功能是否开启(audit_trail 为 NONE,audit_sys_operations 为 FALSE 表示未开启):
SQL> show parameter audit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /oracle/admin/sid/adump
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string NONE

Audit_sys_operations:
默认为false,当设置为true时,所有sys用户(包括以sysdba,sysoper身份登录的用户)的操作都会被记录,audit trail不会写在aud$表中,这个很好理解,如果数据库还未启动aud$不可用,那么像conn /as sysdba这样的连接信息,只能记录在其它地方。如果是windows平台,audti trail会记录在windows的事件管理中,如果是linux/unix平台则会记录在audit_file_dest参数指定的文件中。

Audit_trail:
None:是默认值,不做审计;
DB:将audit trail 记录在数据库的审计相关表中,如aud$,审计的结果只有连接信息;
DB,Extended:这样审计结果里面除了连接信息还包含了当时执行的具体语句;
OS:将audit trail 记录在操作系统文件中,文件名由audit_file_dest参数指定;
XML:10g里新增的。

更多Oracle相关信息见Oracle 专题页面 ?tid=12

Oracle数据库短时间磁盘空间占用超过88%问题分析