É verdade que o nagios tem agente para monitorar BD oracle, mas Eu acredito que o software deva estar bugado, porque o agente de monitoramento não deveria causar transtornos no ambiente do usuário, pelo menos em tese.. quanto mais "transparente" melhor
Criar uma procedure seria um paliativo, mas já tentou falar com o responsavel pelo software pra ver se existe alguma atualizacao dessa aplicação? Porque isso não vai parar... a nao ser que desabilite o monitoramento de BD []s 2017-12-01 15:23 GMT-02:00 Rafael Mendonca raffaell.t...@yahoo.com [oracle_br] <oracle_br@yahoogrupos.com.br>: > > > Oracle EE 11.2.0.4 - Standalone (sem grid) > > > Senhores, em um determinado ambiente, está recorrente a abertura de > chamado em relação a lentidão, e o que percebi consultando a v$session + > v$process +session_event é que existe um usuário chamado XXXNAGIOS > (USERNAME) que conecta por um server remoto (MACHINE MMMM) utilizando o > SQLPLUS (MODULE SQLPLUS) todas as suas sessões ficam com status ACTIVE, > todas elas estão tomando a WAIT SQL*NET message from client e não existe > nenhum sql sendo executado no momento. > > Após matar essas sessões, o ambiente volta a normalizar. Esse é um usuário > que conecta no database para realizar operações de monitoramento. > > Abri chamado com a Oracle para poder ajudar no que pode está ocorrendo, as > sessões simplismente não desconectam e após os SQLs serem executados, > continuam consumindo recurso da máquina e tomando a WAIT acima. > > Enquanto a Oracle não me dá uma solução definitiva, estava pensando em > realizar um workaround em relação a isso. > Seria criar um job que executasse uma PROCEDURE para matar essas sessões > de tempos em tempos, gostaria da ajuda de vocês para montar a procedure já > que faz muitos anos que trabalhei com pl/sql. > > O cursor para carregar os dados seria mais ou menos dessa forma: > > SELECT s.sid, > s.serial# > FROM v$session s, > v$process p > WHERE s.paddr = p.addr > AND s.username = 'XXXNAGIOS' > AND s.status = 'ACTIVE' > AND s.module = 'SQL*PLUS' > and s.machine = 'MMM' > and s.last_call_et > 400; > > > e em um loop realizar o execute immediate ('alter system kill session > ''vsid'', ''vserial'' immediate'); > > Alguém pode me ajudar a montar esse procedure? > > Lembrando que isso é somente uma ação paleativa enquanto não identificamos > o que está causando esse comportamento no ambiente. > > > > >