Utilizando o Automatic Diagnostic Repository

Utilizando o Automatic Diagnostic Repository.

Criando uma procedure sobre lock’s de library cache, agora a tarde me deparei com um erro ORA-07445 bem estranho.
Diante disso resolvi abrir um chamado para Oracle no metalink.

Para facilitar a coleta de todas as informações relevantes do erro em questao a Oracle disponibiliza o ADR a partir da versao 11.1.0.6, assim nos ajudando a detalhar e repassar melhor o problema no caso de um SR na Oracle.

Veja como funciona.

Para conectar no adr basta digitar adrci no path dos binarios
Mas vou mostrar para vocês desde o inicio do problema.

ERROR at line 213:
ORA-03113: end-of-file on communication channel
Process ID: 17123
Session ID: 149 Serial number: 251


SQL> exit
Disconnected from Oracle Database 11g Release 11.2.0.2.0 - Production
With the Real Application Clusters and Automatic Storage Management options

[oracle@rac11g1 trace]$ adrci

ADRCI: Release 11.2.0.2.0 - Production on Thu Feb 9 15:39:35 2012

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

ADR base = "/ora01/app"

Acima observem que entrei no repositório do ADR digitando adrci da pasta trace.
Isso é possivel pois o path esta exportado em meu linux conforme abaixo.

[oracle@rac11g1 trace]$ echo $PATH
/usr/kerberos/bin:/ora01/app/product/11.2.0/db_1/bin:/usr/sbin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin
[oracle@rac11g1 trace]$

Observe que em meu path contem exportado o caminho dos binarios do oracle.
/ora01/app/product/11.2.0/db_1/bin

Bom vamos ao que interessa.
Com o repositório adrci aberto eu listo os processos em que deram erro em meu banco.

Com o comando “show incidente”

ADR base = "/ora01/app"
adrci> show incident

ADR Home = /ora01/app/diag/rdbms/tkrac11g/tkrac11g1:
*************************************************************************
INCIDENT_ID          PROBLEM_KEY                                                 CREATE_TIME
-------------------- ----------------------------------------------------------- ----------------------------------
1537                 ORA 600 [kgantc_1]                                          2011-08-09 13:39:41.260000 -03:00
2401                 ORA 603                                                     2011-08-09 13:41:13.149000 -03:00
24090                ORA 32701                                                   2012-01-23 17:16:12.839000 -02:00
24091                ORA 32701                                                   2012-01-23 17:46:56.073000 -02:00
24092                ORA 32701                                                   2012-01-24 10:19:30.518000 -02:00
24093                ORA 32701                                                   2012-01-24 10:52:24.897000 -02:00
26490                ORA 32701                                                   2012-01-27 09:49:51.384000 -02:00
32730                ORA 7445 [evaopn3()+632]                                    2012-02-09 14:38:58.735000 -02:00
32731                ORA 7445 [evaopn3()+632]                                    2012-02-09 14:39:24.942000 -02:00
32794                ORA 7445 [evaopn3()+632]                                    2012-02-09 14:43:06.793000 -02:00
32874                ORA 7445 [evaopn3()+632]                                    2012-02-09 14:58:20.772000 -02:00
32875                ORA 7445 [evaopn3()+632]                                    2012-02-09 15:00:20.362000 -02:00
12 rows fetched

Observe que hoje “2012-02-09″houve varios erros “ORA 7445 [evaopn3()+632]”
Então vamos criar um pacote para enviar todo o diagnostico para a oracle, com o comando “IPS CREATE PACKAGE”

adrci> IPS CREATE PACKAGE INCIDENT 32875
Created package 1 based on incident id 32875, correlation level typical
adrci> IPS CREATE PACKAGE
Created package 2 without any contents, correlation level typical

Com o comando acima foi criado um pacote sobre o incidente 32875.
Ou você poderá utilizar esse comando para criar um pacote de todos os erros.
conforme segundo comando.

Agora vamos geralo em disco.

adrci> IPS GENERATE PACKAGE 1 IN /home/oracle

Generated package 1 in file /home/oracle/ORA7445ev_20120209154203_COM_1.zip, mode complete

adrci> exit
[oracle@rac11g1 trace]$ ls -lrt /home/oracle/ORA7445ev_20120209154203_COM_1.zip
-rw-r--r-- 1 oracle oinstall 7146751 Feb  9 15:46 /home/oracle/ORA7445ev_20120209154203_COM_1.zip
[oracle@rac11g1 trace]$

A partir dai basta abrir um chamado com a oracle e anexar o arquivo.
Todos os arquivos contidos neste zip contem alguma informação relevante sobre o problema.
Caso você trabalhe de um rac 11G até mesmo logs de CRS serão enviados junto neste processo.

Existem algumas opções que você pode utilizar nesta ferramenta.
Criar um pacote sobre o problem_key.
Criar um pacote sobre o tempo.
Adicionar um novo problema ao pacote.

adrci>IPS CREATE PACKAGE PROBLEMKEY "problem_key"
adrci>IPS CREATE PACKAGE SECONDS sec
adrci>IPS CREATE PACKAGE TIME 'start_time' TO 'end_time'
adrci>IPS ADD INCIDENT incident_number PACKAGE package_number

Referências.

Note Id 411.1 e Note Id 422893.1

%name Utilizando o Automatic Diagnostic Repository

Autor: Leandro Lana

Trabalho com banco de dados Oracle desde 2006, já trabalhei com as plataformas 9i, 10G, 11G, 12C, 18C, 19C e 21(ainda em testes).

Trabalhando atualmente como consultor Oracle na MigraTI Soluções em TI como administrador de banco de dados Oracle, SQL-Server, MySQL e Postgresql.

Contato: leandro.lana@migrati.com.br

Fone: (47) 9191-6052 / (47) 3328 0996

Certificações:

OCA 10G.

OCP 10G.

OCE Linux.

OCE RAC/Cluster.

MCP SQL-Server 2008.

MCITP SQL-Server 2008.

DB2 Fundamentals.