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

Respon

El contingut d'aquest camp es manté privat i no es mostrarà públicament.
  • Les línies i paràgrafs es trenquen automàticament.
  • Links to specified hosts will have a rel="nofollow" added to them.

  • Les adreces de pàgines web i de correu electrònic es tornen automàticament en enllaços.

Més informació sobre opcions de format

CAPTCHA
Aquesta comprovació es fa per tal d'evitar l'spam
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.

Cerca amb el motor de Google

Google