From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com> |
Cc: | Jaime Casanova <jaime(at)2ndquadrant(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Re: [pgsql-es-ayuda] help, server caído |
Date: | 2013-07-04 18:57:22 |
Message-ID: | 20130704185722.GM3592@eldon.alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Guillermo E. Villanueva escribió:
> Muchas gracias Alvaro y Jaime, les cuento que leí sus mensajes y no sabía
> como cancelar, entré a la misma consola ssh y presioné control + C y ...
> yes! se canceló! muchas gracias. La verdad que tenía miedo de dañar los
> datos de la tabla.
> El VACUUM abre muchas conexiones a la vez?
No, sólo una.
Me imagino que lo que pasó es que otra conexión tratoó de hacer alguna
operación que requería un lock en la tabla que entra en conflicto con el
ShareUpdateExclusive de VACUUM, y por lo tanto se bloqueó; y todos los
accesos de ahí en adelante quedan bloqueados detrás de esa otra
conexión. Para depurar esto deberías mirar pg_locks buscando filas con
granted=false, y correlacionar eso con lo que están tratando de hacer
esas conexiones en pg_stat_activity.
Ahora, ¿por qué podría llegar a pasar esto? Es fácil: si las
operaciones que toman locks pesados en esa tabla son comunes, entonces
autovacuum nunca podría completar un ciclo sobre esa tabla, porque éste
se "suicida" cuando encuentra que está bloqueando otras conexiones. (Un
VACUUM ejecutado manualmente no tiene este comportamiento). La solución
es simple pero no necesariamente fácil: tienes que hacer que tus
aplicaciones no traten de obtener locks pesados muy seguido sobre las
tablas. Por lo menos debería poder ejecutarse un vacuum completo desde
que eso pasa una vez hasta la vez siguiente.
Éxito,
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Jose Moreira - Know How | 2013-07-04 20:09:40 | Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] help, server caído |
Previous Message | Guillermo E. Villanueva | 2013-07-04 18:45:06 | Re: [pgsql-es-ayuda] help, server caído |