• Anderson Graf

Conectando na SGA usando uma conexão SQL*Plus Preliminar

Diversas vezes encontramos ambientes onde o numero de processos permitidos estourou (ORA-00020: maximum number of processes (%s) exceeded), e agora qual a solução? Reiniciar o database ou começar a matar sessões? 


Estas ações muitas vezes podem mascarar o problema ou não serem permitidas pois podem significar mais trabalho.. 


Uma “solução” introduzida na versão 10G é a conexão preliminar, onde permite a conexão diretamente com a SGA sem abrir uma sessão no bando de dados. 


Como não temos nenhuma sessão aberta no database não conseguimos realizar nenhuma consulta pois retorna erro conforme demonstrado abaixo, contudo, através da conexão preliminar (sqlplus -prelim) conseguimos executar qualquer comando ORADEBUG, logo, podemos apontar e analisar o que esta causando esta contenção no ambiente seja lock ou qualquer outro fator. 


Abrindo uma conexão preliminar e tentando executar um select (erro):


Outra forma de iniciarmos a conexão preliminar é:


Através do comando ORADEBUG podemos rastrear qualquer processo ou sessão gerando assim um arquivo trace para dentro do diretório configurado no parâmetro background_dump_dest.



Um case muito interessante utilizando a conexão preliminar foi publicado pelo Arup Nanda em seu blog, vale a pena conferir! Diagnosing Library Cache Latch Contention: A Real Case Study 


Referências:


How To Connect Using A sql Preliminary Connection [ID 986640.1] Interpreting HANGANALYZE trace files to diagnose hanging and performance problems [ID 215858.1] ORA-7445 [kgllkd] With -prelim Option When Running System State Dump [ID 417879.1]

32 visualizações

© 2018 Exímio Solução em TI

  • Grey Facebook Ícone
  • Ícone cinza LinkedIn