domingo, 19 de fevereiro de 2012

Escrevendo no Alert log

O arquivo de log de alerta do Oracle conhecido basicamente por alert.log é um log de mensagens e erros escritos pelo banco de dados que registra informações como desligamento e inicialização do banco, alterações de parâmetros, erros/alertas, entre outros. 

Como sabemos este arquivo deve ser constantemente monitorado para detectar mensagens de alertas e erros, mas como podemos testar se nosso monitoramento esta realmente funcionando sem gerar um erro ou esperar que um aconteça? 

Pois bem, a Oracle oferece uma package para podermos “escrever” no alertlog e arquivos de trace, vejamos: 

O primeiro valor informado na chamada tem como objetivo:

1 – Gravar o erro em um arquivo de trace (trace file);
2 – Gravar o erro no alertlog;
3 – Gravar o erro no alertlog e em um arquivo trace.

O segundo é a mensagem ou texto a ser escrito:

SQL> EXEC SYS.DBMS_SYSTEM.KSDWRT(2,'ORA-00600: TESTE ANDERSON');
 
PL/SQL procedure successfully completed.
 
SQL> EXEC SYS.DBMS_SYSTEM.KSDWRT(2,'ORA-00600: internal error code, arguments: [ANDERSON], [12345], [], [], [], [], []');
 
PL/SQL procedure successfully completed.

Verificando o alert log podemos constatar que a simulação foi realizada com sucesso.

maquina-de-teste > tail -n 10 alert_teste.log
  Current log# 2 seq# 17929 mem# 0: /oraprd01/app/oracle/oradata/teste/redo02a.log
  Current log# 2 seq# 17929 mem# 1: /oraprd02/oradata/teste/redo02b.log
Mon Feb 06 18:08:50 2012
Archived Log entry 26302 added for thread 1 sequence 17928 ID 0x341cf6e dest 1:
Archived Log entry 26303 added for thread 1 sequence 17928 ID 0x341cf6e dest 2:
Mon Feb 06 18:12:19 2012
Mon Feb 06 18:13:36 2012
ORA-00600: TESTE ANDERSON
Mon Feb 06 18:14:34 2012
ORA-00600: internal error code, arguments: [ANDERSON], [12345], [], [], [], [], []

Uma boa prática que podemos adotar é utilizar esta package para registrar o DBID do database no alertlog(via trigger, scheduler, etc..), visto que é fundamental também matermos registrado em outros locais assim como uma copia dos backups pois nunca sabemos quando um desastre pode ocorrer…

SQL> declare
  dbid number;
begin
  select dbid into dbid from v$database;
  dbms_system.ksdwrt(2,'DBID = '||dbid);
end; 
/

PL/SQL procedure successfully completed.

Alert log do banco de dados:

maquina-de-teste > tail -n 10 alert_teste.log
Mon Feb 06 18:08:50 2012
Archived Log entry 26302 added for thread 1 sequence 17928 ID 0x341cf6e dest 1:
Archived Log entry 26303 added for thread 1 sequence 17928 ID 0x341cf6e dest 2:
Mon Feb 06 18:12:19 2012
Mon Feb 06 18:13:36 2012
ORA-00600: TESTE ANDERSON
Mon Feb 06 18:14:34 2012
ORA-00600: internal error code, arguments: [ANDERSON], [12345], [], [], [], [], []
Mon Feb 06 18:22:50 2012
DBID = 54669934
Postagem mais recente Postagem mais antiga Página inicial

0 comentários:

Postar um comentário

Translate

# ACE Program

#Oracle

#Oracle
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.

#Blog reconhecido

#ARTICULISTA

Marcadores

Postagens populares