quarta-feira, 14 de março de 2012

Consultando e eliminando sessões ativas no Oracle

Hoje vou deixar uma dica rápida, como listar as sessões ativas no oracle, isto é, os usuários que estão conectados através de alguma aplicação cliente. O sql a seguir lista todas as sessões ativas excluindo os processos do próprio oracle.

SELECT s.username,
     s.osuser,
     s.sid,
     s.serial#,
     p.spid,
     s.status,
     s.machine,
     s.program,
     TO_CHAR(s.logon_Time,'DD-MON-YYYY HH24:MI:SS') AS logon_time
   FROM v$session s
  inner join v$process p
     on s.paddr = p.addr
  WHERE s.status = 'ACTIVE' 
    and s.type <> 'BACKGROUND'


Com a lista de usuário em mãos, podemos optar por "matar" a sessão de algum usuário ativo. Para isso basta executar o comando abaixo, substituindo o "sid" e "serial#' pelos valores retornados da consulta anterior.

ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE; 

Por hoje era isso.

Nenhum comentário:

Postar um comentário