Connection storm (demasiadas conexiones)
Ha recibido 'too many connections', 'remaining connection slots reserved' u ORA-00018; se están rechazando conexiones nuevas. Encuentre el origen, alivie la presión ahora y corríjalo definitivamente.
Mida la situación: ¿cuántas conexiones hay y cuántas están activas?
Mire primero el total de conexiones, el límite y el reparto activas/inactivas.
SELECT status, COUNT(*) FROM v$session WHERE type='USER' GROUP BY status;
SELECT name, value FROM v$parameter WHERE name IN ('processes','sessions');- La mayoría de las conexiones están idle / idle in transaction
- La mayoría están activas; necesito encontrar el origen
¿Quién/desde dónde? Agrupe las conexiones por origen
Normalmente el pool de un único servidor de aplicaciones se ha disparado o hay una fuga de conexiones. Mire la distribución por host/usuario/aplicación.
SELECT client_addr, usename, application_name, count(*) FROM pg_stat_activity GROUP BY 1,2,3 ORDER BY 4 DESC;- Una sola aplicación/host ha disparado las conexiones (pool)
- La carga ha aumentado de verdad; todas son legítimas y están activas
Causa raíz: acumulación de conexiones inactivas / fuga
Las conexiones se abren y nunca se cierran, o se dejan 'idle in transaction'; ocupan slots para nada.
Causa raíz: el pool de la aplicación se ha disparado
El pool de conexiones de un servidor de aplicaciones no tiene límite, es demasiado grande o tiene fugas. Es el que genera las conexiones.
Causa raíz: aumento real de la carga
Las conexiones son legítimas y están activas; la capacidad es realmente insuficiente.