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