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@postgresql.org) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda