Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Matar cerrar sesión en Oracle
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Matar cerrar sesión en Oracle

Publicar nuevo tema Responder al tema
Foros de discusión » Oracle Database, motor de base de datos profesional   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Matar cerrar sesión en Oracle Responder citando

Hola, tengo un servidor con Linux y Oracle 11g, necesito un procedimiento SQL que me permita matar (cerrar) una sesión ¿eso es posible? ¿cómo puedo listar las sesiones abiertas?
MensajePublicado:
Mar Ago 26, 2014 11:19 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Matar cerrar sesión en Oracle Responder citando



Anuncios



La siguiente consulta SQL te devolverá todas las sesiones y los datos de las sesiones actuales de conexión a Oracle:

Código:

SELECT s.USERNAME, s.SID, s.SERIAL#, s.SPID, s.OSUSER, s.MACHINE, s.PROGRAM
FROM v$session s, v$process  p
WHERE  s.PADDR = p.ADDR
ORDER by 1;


La consulta SQL anterior devuelve datos tan interesantes como el nombre del usuario del sistema operativo, el nombre de la máquina (PC) que inició sesión, el nombre de la aplicación, etc. Los datos importantes que necesitaremos para matar (cerrar) una sesión serán el SID y el SERIAL.

La consulta SQL para matar una sesión Oracle sería:

Código:

ALTER SYSTEM KILL SESSION 'SID, SERIAL#';


Teniendo en cuenta los valores de la primera consulta SQL, si queremos cerrar la sesión con SID 125 y SERIAL 5002, la consulta SQL sería:

Código:

ALTER SYSTEM KILL SESSION '125, 5002';


El inconveniente de la consulta anterior es que Oracle esperará a que el proceso responda y haya finalizado la transacción en curso, si el proceso está "colgado" nunca se detendrá.
MensajePublicado:
Mar Ago 26, 2014 5:10 pm
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Re: Matar cerrar sesión en Oracle Responder citando



Anuncios



alonsojpd escribió:

Código:

ALTER SYSTEM KILL SESSION 'SID, SERIAL#';


Ok, gracias por la información.

En caso de que no se cierre la sesión con ALTER SYSTEM KILL SESSION ¿qué puedo hacer para cerrarla o matarla?
MensajePublicado:
Mie Ago 27, 2014 4:11 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Matar cerrar sesión en Oracle Responder citando



Anuncios



varios escribió:
Ok, gracias por la información.

En caso de que no se cierre la sesión con ALTER SYSTEM KILL SESSION ¿qué puedo hacer para cerrarla o matarla?


En ese caso puedes usar la clausula IMMEDIATE, algo así:

Código:

ALTER SYSTEM KILL SESSION 'SID, SERIAL#' IMMEDIATE;
MensajePublicado:
Mie Ago 27, 2014 4:15 am
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Re: Matar cerrar sesión en Oracle Responder citando



Anuncios



alonsojpd escribió:
Código:

ALTER SYSTEM KILL SESSION 'SID, SERIAL#' IMMEDIATE;


Con IMMEDIATE se me cierran algunas sesiones que antes no se cerraban pero aún tengo otras que no se cierran ni con IMMEDIATE, ya no sé qué hacer!! no puedo reiniciar el servidor de la base de datos por cuestiones de disponibilidad y no sé cómo matar estas sesiones que tienen bloqueada una tabla importante de la aplicación de Facturación y Contabilidad.
MensajePublicado:
Mie Ago 27, 2014 4:18 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Matar cerrar sesión en Oracle Responder citando



Anuncios



varios escribió:
Con IMMEDIATE se me cierran algunas sesiones que antes no se cerraban pero aún tengo otras que no se cierran ni con IMMEDIATE, ya no sé qué hacer!! no puedo reiniciar el servidor de la base de datos por cuestiones de disponibilidad y no sé cómo matar estas sesiones que tienen bloqueada una tabla importante de la aplicación de Facturación y Contabilidad.


En ese caso puedes matar las sesiones Oracle desde la línea de comandos (shell) de MS-DOS (en el caso de equipo servidor Oracle con Windows), con el comando:

Código:

orakill ORACLE_SID spid


Donde sustituirás "ORACLE_SID" por el SID de tu base de datos (el identificativo que le diste al crear la instancia Oracle) y spid es el valor que te devuelve la cuarta columna de la consulta SQL:

Código:

SELECT s.USERNAME, s.SID, s.SERIAL#, s.SPID, s.OSUSER, s.MACHINE, s.PROGRAM
FROM v$session s, v$process  p
WHERE  s.PADDR = p.ADDR
ORDER by 1;


Para el caso de sevidor Oracle con Linux puedes usar el comando:

Código:

kill -9 spid


Siendo como ya hemos dicho el spid el el valor que te devuelve la cuarta columna de la consulta SQL.

En Linux puedes ver si la sesión se ha cerrado pues se corresponde con un proceso con el comando:

Código:

ps -ef | grep ora
MensajePublicado:
Mie Ago 27, 2014 4:21 am
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: [RESUELTO] Matar cerrar sesión en Oracle Responder citando



Anuncios



Muchísimas gracias, resuelto con el comando kill de Linux e introduciendo el SPID de la consulta SQL. Ahora la tabla se me desbloqueó y las aplicaciones Oracle funcionan perfectas.

Gracias!!!!
MensajePublicado:
Mie Ago 27, 2014 4:25 am
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Oracle Database, motor de base de datos profesional  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A