oracle问题:ORA-09817及解决办法
阅读原文时间:2023年09月27日阅读:13

某天以管理员身份登录公司测试库报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

若有问题请指出