Matar sesiones de Oracle

Para matar una sesión de Oracle hay que utilizar, con un usuario con permisos de DBA, el comando

ALTER SYSTEM KILL SESSION 'SID,SERIAL#';

Para obtener el SID y el SERIAL# que necesitamos se puede utilizar la consulta:

select p.*, s.*
from v$session s, v$process p
where p.addr(+)=s.paddr
order by SID

Esta consulta devolvería los datos de todas las sesiones abiertas, se pueden restringir los resultados a las sesiones que interesen añadiendo condiciones en el where.

Si el número de sesiones que hay que eliminar es elevado, se puede utilizar esta misma consulta para crear las sentencias necesarias dinámicamente:

select 'alter system kill session '''||s.sid||','||p.serial#||''';'
from v$session s, v$process p
where p.addr(+)=s.paddr
and s.username='USER'; (por ejemplo)

Sobretodo cuidado con la condición que se incluye en el where, ya que si no se especificara nada, por ejemplo, se matarían todas las sesiones de la base de datos.

Para crear un script con estas sentencias consultar Construcción de scripts con ayuda del diccionario

Responder

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Saltos automáticos de líneas y de párrafos.
  • Links to specified hosts will have a rel="nofollow" added to them.

  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.

Más información sobre opciones de formato

CAPTCHA
Esta comprobación es para evitar el spam
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.

Busqueda con el motor de Google

Google