Olá Duilio,

na verdade, o mais recomendado é vc matar a sessão direto no sistema 
operacional.

O que costumo fazer, é identificar a sessão que quero matar, identificar qual 
servidor está aberto o processo, e pegar o OS Process Number.
Aí vc vai no prompt do nó (instance name) e manda bala com:
kill -9 <Process_number>


Roda a consulta abaixo que vc identifica a Instance Name (nó) e o número do 
processo.

Abraço
Alex



SELECT * FROM ( 
select s.USERNAME, p.spid os_process, s.STATUS, 
       s.OSUSER, s.MACHINE, s.TERMINAL, s.PROGRAM, 
       TO_CHAR(s.LOGON_TIME,'DD/MM/YYYY HH24:MI:SS') LOGON_TIME, 
s.LAST_CALL_ET, 
       to_char(trunc((sysdate - s.logon_time) * 1440 / 60)) || ':' || 
ltrim(to_char(mod((trunc((sysdate - s.logon_time) * 1440)), 60), '00')) 
ELAPSED_LOGON, 
       to_char(trunc(s.LAST_CALL_ET / 3600)) || ':' || 
ltrim(to_char(trunc(s.LAST_CALL_ET / 60) - (trunc(s.LAST_CALL_ET / 3600) * 60), 
'00')) last_call, 
       s.inst_id, di.instance_name, di.host_name, 
       s.SID, s.SERIAL#, s.PROCESS, s.USER#,  
       s.SERVER, s.SQL_ADDRESS, s.SQL_HASH_VALUE, 
       s.MODULE, s.ACTION, s.CLIENT_INFO, 
       io.BLOCK_GETS, io.CONSISTENT_GETS, 
       io.block_gets + io.consistent_gets logical_gets, 
       io.PHYSICAL_READS, 
       round(decode(io.block_gets + io.consistent_gets, 0, 1, 1 - 
round(io.physical_reads / (io.block_gets + io.consistent_gets), 4)), 2) 
hit_rate, 
       io.BLOCK_CHANGES, io.CONSISTENT_CHANGES 
  from sys.gv_$session  s, 
       sys.gv_$sess_io  io, 
       sys.gv_$process  p, 
       sys.gv_$instance di 
 where s.sid = io.sid(+) 
   and s.inst_id = io.inst_id(+) 
   and s.username is not null 
   and s.paddr = p.addr(+) 
   and s.inst_id = p.inst_id 
   and s.inst_id = di.inst_id 
) 
WHERE 1=1 
 ORDER BY USERNAME ASC





--- Em qua, 6/1/10, Duilio Bruniera Junior <[email protected]> escreveu:

> De: Duilio Bruniera Junior <[email protected]>
> Assunto: [oracle_br] Kill session no oracle RAC
> Para: [email protected]
> Data: Quarta-feira, 6 de Janeiro de 2010, 19:59
> Ai pessoal todo mundo aqui sabe como
> matar uma sessão no oracle single
> instance. Correto?
> <segue abaixo>
> SQL> alter system kill session
> '<SID>,<SERIAL#>' immediate;
> 
> Agora é o seguinte como eu mato uma sessão em um oracle
> rac?
> eu ja vi na net o pessoal passando esse comando:
> 
> SQL> alter system kill session
> '<SID>,<SERIAL#>,@<INST_ID>' immediate;
> ja vi sem o "@"
> 
> SQL> alter system kill session
> '<SID>,<SERIAL#>,<INST_ID>' immediate;
> 
> já vi tambem com e sem o immediate, mais qualquer um pra
> mim retorna o mesmo
> erro
> <segue abaixo>
> ORA-00026: missing or invalid session ID
> 
> e antes que perguntem, sim a sessão existe.
> 
> alguem tem uma luz?
> 
> 
> [As partes desta mensagem que não continham texto foram
> removidas]
> 
> 
> 
> ------------------------------------
> 
> --------------------------------------------------------------------------------------------------------------------------
> >Atenção! As mensagens do grupo ORACLE_BR são de
> acesso público e de inteira responsabilidade de seus
> remetentes.
> Acesse: http://www.mail-archive.com/[email protected]/
> 
> --------------------------------------------------------------------------------------------------------------------------
> >Apostilas » Dicas e Exemplos » Função » Mundo
> Oracle » Package » Procedure » Scripts » Tutoriais - O
> GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com..br/  
> ------------------------------------------------------------------------------------------------------------------------
> Links do Yahoo! Grupos
> 
> 
> 
> 


      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com

Responder a