Pular para o conteúdo

Erro ORA-09817: Write to audit file falhou – Como solucionar

Ora-09817: write to audit file failed

Hoje estarei abordando sobre o erro : “ORA-09817: Write to audit file failed.” . Este erro é reportado, quando os arquivos de dump de auditoria (adump) do Oracle, estão sem espaço para serem escritos. Diferentemente, dos arquivos de backgrounds (bdump), core dump (cdump) e outros, o arquivo de auditoria (adump), não simplesmente “congela” o Banco de Dados, como os anteriores, ele não deixa logar no banco. Por que isto? A resposta é simples, se os arquivos de auditoria de banco estão com problemas para serem escritos, o banco fica sem auditoria e, banco sem auditoria, não tem segurança.

Segue exemplo:

[oracle@localhost ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.1.0 Production on Sat Aug 25 16:10:13 2012

Copyright (c) 1982, 2009, Oracle. All rights reserved.

ERROR:
ORA-09817: Write to audit file failed.
Linux Error: 28: No space left on device
Additional information: 12
ORA-09945: Unable to initialize the audit trail file
Linux Error: 28: No space left on device

A primeira açao de contorno é localizar o diretório dos arquivos de auditoria. O caminho que a Oracle recomenda é o $ORACLE_BASE/admin , no caso do exemplo abaixo : u01/app/oracle/admin

Consultando o arquivo oratab, que se localiza no file system /etc/ para obter o conhecimento de onde está sendo gerado os meus arquivos de auditoria.

[oracle@localhost ~]$ cat /etc/oratab
#Backup file is /u01/app/oracle/product/11.2.0/dbhome_1/srvm/admin/oratab.bak.localhost line added by Agent
#

# This file is used by ORACLE utilities. It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.

# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME::
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
+ASM:/u01/app/oracle/product/11.2.0/grid:N
standbysp:/u01/app/oracle/product/11.2.0/dbhome_1:N
orcl2:/u01/app/oracle/product/11.2.0/dbhome_1:N # line added by Agent
teste:/u01/app/oracle/product/11.2.0/dbhome_1:N
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N # line added by Agent

Se dirigindo até o caminho da localização:

[oracle@localhost ~]$ cd /u01/app/oracle/admin

[oracle@localhost orcl]$ ls -ltr
total 32
drwxr-x--- 2 oracle oracle 4096 Jul 30 2011 scripts
drwxr-x--- 2 oracle oracle 4096 Jul 30 2011 pfile
drwxr-x--- 2 oracle oracle 4096 Jan 5 2012 dpdump
drwxr-x--- 2 oracle oracle 20480 Aug 25 15:26 adump
[oracle@localhost orcl]$

Verificação do espaço disponível no ambiente:

Em linux *: df -h .
Em outros, pode se tentar *: df -gt .

*Ambas as consultas trazem o valor em GigaBytes.

[oracle@localhost scripts]$ df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 11G 10G 9.5M 100% /

Verificamos que o file system está com 100% de utilização. Sendo assim, abaixo segue a listagem dos arquivos:

[oracle@localhost adump]$ ls -ltr
total 212
-rw-rw---- 1 oracle dba 751 Jan 11 2012 orcl_ora_4132_1.aud
-rw-r----- 1 oracle dba 759 Jan 11 2012 orcl_ora_4326_1.aud
-rw-r----- 1 oracle dba 758 Jan 11 2012 orcl_ora_4263_3.aud
-rw-r----- 1 oracle dba 981 Jan 11 2012 orcl_ora_4352_1.aud
-rw-rw---- 1 oracle dba 751 Jan 18 2012 orcl_ora_4348_1.aud
-rw-r----- 1 oracle dba 759 Jan 18 2012 orcl_ora_4407_1.aud
-rw-r----- 1 oracle dba 758 Jan 18 2012 orcl_ora_4263_4.aud
-rw-r----- 1 oracle dba 981 Jan 18 2012 orcl_ora_4432_1.aud
-rw-r----- 1 oracle dba 759 Jan 22 2012 orcl_ora_4279_1.aud
-rw-r----- 1 oracle dba 758 Jan 22 2012 orcl_ora_4211_2.aud
-rw-r----- 1 oracle dba 981 Jan 22 2012 orcl_ora_4299_1.aud
-rw-rw---- 1 oracle dba 751 Jan 22 2012 orcl_ora_4343_1.aud
-rw-rw---- 1 oracle dba 751 Jan 22 2012 orcl_ora_4347_1.aud
-rw-rw---- 1 oracle dba 764 Jan 22 2012 orcl_ora_4397_1.aud
-rw-rw---- 1 oracle dba 758 Jan 22 2012 orcl_ora_4347_2.aud
-rw-r----- 1 oracle dba 759 Jan 22 2012 orcl_ora_4404_1.aud
-rw-r----- 1 oracle dba 759 Apr 29 20:42 orcl_ora_4423_1.aud
-rw-r----- 1 oracle dba 758 Apr 29 20:42 orcl_ora_4357_2.aud
-rw-r----- 1 oracle dba 981 Apr 29 20:42 orcl_ora_4447_1.aud
-rw-rw---- 1 oracle dba 751 Apr 29 20:45 orcl_ora_4481_1.aud
-rw-rw---- 1 oracle dba 764 Apr 29 20:45 orcl_ora_4530_1.aud
-rw-rw---- 1 oracle dba 758 Apr 29 20:45 orcl_ora_4481_2.aud
-rw-r----- 1 oracle dba 759 Apr 29 20:45 orcl_ora_4539_1.aud
-rw-r----- 1 oracle dba 759 Jun 16 12:10 orcl_ora_4007_1.aud
-rw-r----- 1 oracle dba 758 Jun 16 12:10 orcl_ora_3941_2.aud
-rw-r----- 1 oracle dba 981 Jun 16 12:10 orcl_ora_4029_1.aud
-rw-rw---- 1 oracle dba 751 Jun 16 12:19 orcl_ora_4398_1.aud
-rw-rw---- 1 oracle dba 764 Jun 16 12:19 orcl_ora_4452_1.aud
-rw-rw---- 1 oracle dba 758 Jun 16 12:19 orcl_ora_4398_2.aud
-rw-r----- 1 oracle dba 759 Jun 16 12:19 orcl_ora_4459_1.aud
-rw-r----- 1 oracle dba 788 Jun 19 09:53 orcl_ora_4293_2.aud
-rw-r----- 1 oracle dba 789 Jun 19 09:53 orcl_ora_4425_1.aud
-rw-r----- 1 oracle dba 981 Jun 19 09:53 orcl_ora_4442_1.aud
-rw-r----- 1 oracle dba 758 Jun 20 11:56 orcl_ora_4230_2.aud
-rw-r----- 1 oracle dba 759 Jun 20 11:56 orcl_ora_4465_1.aud
-rw-r----- 1 oracle dba 981 Jun 20 11:56 orcl_ora_4489_1.aud
-rw-r----- 1 oracle dba 759 Jul 6 20:23 orcl_ora_4286_1.aud
-rw-r----- 1 oracle dba 758 Jul 6 20:23 orcl_ora_4213_2.aud
-rw-r----- 1 oracle dba 981 Jul 6 20:23 orcl_ora_4311_1.aud
-rw-r----- 1 oracle dba 759 Jul 9 19:23 orcl_ora_4285_1.aud
-rw-r----- 1 oracle dba 758 Jul 9 19:23 orcl_ora_4216_2.aud
-rw-r----- 1 oracle dba 981 Jul 9 19:23 orcl_ora_4306_1.aud
-rw-r----- 1 oracle dba 758 Jul 10 11:17 orcl_ora_4270_2.aud
-rw-r----- 1 oracle dba 759 Jul 10 11:17 orcl_ora_4373_1.aud
-rw-r----- 1 oracle dba 981 Jul 10 11:17 orcl_ora_4414_1.aud
-rw-rw---- 1 oracle dba 751 Aug 25 15:19 orcl_ora_4116_1.aud
-rw-rw---- 1 oracle dba 751 Aug 25 15:25 orcl_ora_4203_1.aud
-rw-r----- 1 oracle dba 759 Aug 25 15:25 orcl_ora_4280_1.aud
-rw-r----- 1 oracle dba 758 Aug 25 15:25 orcl_ora_4215_2.aud
-rw-r----- 1 oracle dba 981 Aug 25 15:25 orcl_ora_4302_1.aud
-rw-rw---- 1 oracle dba 764 Aug 25 15:26 orcl_ora_4354_1.aud
-rw-rw---- 1 oracle dba 758 Aug 25 15:26 orcl_ora_4203_2.aud

Para se remover arquivos, pode se usar a cláusula rm *.extensão

[oracle@localhost adump]$ rm *.aud

ou

Utilizar o find . -name “*.extensao” -mtime +numeroDeDiasQueEuQueroQueDeixeDesdeADataPresente (no exemplo abaixo, 2 dias antes da data de hoje) -exe rm {} ;

[oracle@localhost adump]$ find . -name "*.aud" -mtime +2 -exec rm {} ;

Listando para verificar se os arquivos foram removidos.

[oracle@localhost orcl]$ cd adump
[oracle@localhost adump]$ ls -ltr
total 0

Posteriormente, tente se conectar no Banco de Dados novamente.

[oracle@localhost orcl]$ sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.1.0 Production on Sat Aug 25 16:23:54 2012

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

SQL>

Para questões de boas práticas, evite deixar os diretórios dos arquivos de auditoria, background , core dump, entre outros, encherem.

Espero tê-lo ajudado.

Abraços.

Referências

Bruno Reis

Bruno Reis

DBA ORACLE  na International Business Machines (IBM), fornecendo suporte para grandes clientes. Técnico em Informática pela Escola Técnica Polivalente de Americana e estudante de Ciência Computação . Mantenedor do Weblog sobre Banco de Dados Oracle e Gerenciamento de Serviços de TI: www.brunors.com

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress