Re: Re: [pgsql-es-ayuda] help, server caído

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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