Matando sesiones desde el sistema operativo

Como comenté en un post anterior, la mejor manera de matar una sesión de Oracle es desde dentro del servicio.

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

Al recibir este Alter, la sesión pasa a modo KILLED, estado en el que intenta liberar los recursos empleados aunque, lamentablemente, no siempre lo consigue.

Para rematar una sesión marcada como KILLED que realmente no muere con el paso del tiempo hay que operar desde el sistema operativo.

El primer paso es identificar el proceso del sistema operativo conociendo el SID:

select p.spid, s.sid, s.serial#, s.username
from v$session s, v$process p
where p.addr = s.paddr and
s.sid= &SID;

La estructura de los procesos Oracle en Windows y Unix es un poco distinta, por ello para Unix se ejecutará la instrucción:

KILL -9 {spid}

Y desde windows:

orakill {S*I*D} {spid}

IMPORTANTE: este ultimo {S*I*D} es el identificador de la bbdd, no de la sesión.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *