某天以管理员身份登录公司测试库报ORA-09817错误,查了网上的文章说是审计文件没有存储空间造成的。我的这问题也证实了这一点,现将解决步骤分享:
1、发现问题:报ORA-09817
oracle@linux-cs:~> sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Tue Sep 1 16:16:55 2020 Copyright (c) 1982, 2016, Oracle. All rights reserved. ERROR: ORA-09817: 无法写入审计文件。 Linux-x86_64 Error: 28: No space left on device Additional information: 12 ORA-01075: 您现在已登录
2、接着退出sqlplus,查看各个目录存储量
oracle@linux-cs:/u01/oracle/admin/cdb_test/adump> df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 58G 25G 32G 44% / /dev/mapper/vg_1-lv_u01 20G 14G 0G 100% /u01 /dev/mapper/vg_1-lv_oradata 50G 30G 18G 64% /oradata
发现/u01目录可用大小为0G
3、查询oracle审计文件的路径,根据“2”中各个挂载点的可用存储,猜测审计文件.aud放在/u01目录下
cd $ORACLE_BASE/admin/服务名/adump下 说明: cd $ORACLE_BASE/admin能到指定的目录下 服务名: select value from v$parameter where name='service_names'; value值为服务名
4、删掉“$ORACLE_BASE/admin/服务名/adump”中的所有文件及文件夹
rm -rf *
完成以上操作后,再次登录数据库,可正常登录
oracle@linux-cs:~> sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Tue Sep 1 16:53:04 2020 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production SQL>
为了防止问题再次出现,可禁止审计功能
SQL> show parameter audit_trail NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ audit_trail string DB 修改之前审计的值 SQL> alter system set audit_trail=none scope=spfile System altered. 再次重启数据库之后 SQL> show parameter audit_trail NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ audit_trail string NONE
若有问题请指出