Inicio Foros Bases de datos Oracle Warning en consola Las métricas "Current Open Cursors Count" están en 1296

Este debate contiene 1 respuesta, tiene 2 mensajes y lo actualizó alonsojpd alonsojpd hace 2 meses, 1 semana.

Viendo 2 publicaciones - del 1 al 2 (de un total de 2)
  • Autor
    Publicaciones
  • #3656
    Avatar
    Varios
    Moderador

    Hola, tengo un servidor con Linux y Oracle 11g, es la base de datos que usamos en la empresa para facturación, contabilidad, recursos humanos, control de stock de almacén, etc..

    Hemos ido ampliando el número de usuarios que se conectan y el número de aplicativos que la usan.

    En los últimos días en la consola de administración web de Oracle 11g me aparece este warning:

    Límites de Base de Datos
    Recuento de Cursores Abiertos ActualesLas métricas «Current Open Cursors Count» están en 1296
    02-ago-2019 7:55:23

    ¿A qué puede ser debido? ¿Se puede hacer algo para evitarlo?

    #3657
    alonsojpd
    alonsojpd
    Jefe de claves

    En primer lugar intenta averiguar qué procesos/usuarios están consumiendo las sesiones. Para ello puedes ejecutar la siguiente consulta SQL:

    select sid, count(*)
    from v$open_cursor
    group by sid
    order by 2 desc;

    La consulta anterior te mostrará algo así:

    SID | COUNT(*)
    —-    ——–
    1275 | 300
    781 | 166
    699 | 166
    1171 | 163
    512 | 160
    1167 | 158
    894 | 153
    1470 | 148
    890 | 141
    790 | 139
    513 | 130
    1462 | 129

    En el ejemplo anterior hay una sesión, con el ID 1275, que tiene un número de procesos anormal, 300, cuando la media es de 120. En este caso podrías intentar averiguar qué usuario y aplicación está realizando ese número anormal de procesos. Para ello ejecuta esta otra consulta SQL:

    select machine, program, osuser
    from v$session where sid=1275;

    En este caso te devolverá el nombre del equipo, el programa y el nombre del usuario que ha realizado ese número inusual de conexiones. Al menos con esta información podrás analizar el origen del problema y actuar en consecuencia. Incluso puede «matar» (cerrar) dicha conexión (sesión), teniendo en cuenta que si ese usuario tiene alguna transacción sin finalizar se cerrará sin guardar los cambios.

    Si quieres forzar el cierre de una sesión puede ejecutar el comando (por ejemplo desde SQLPlus o desde SQL Developer o cualquier otro cliente de Oracle que permita ejecución de consultas SQL del siguiente tipo):

    alter system kill session 1275;

Viendo 2 publicaciones - del 1 al 2 (de un total de 2)

Debes estar registrado para responder a este debate.