某天以管理員身份登錄公司測試庫報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
若有問題請指出
