Re: Funcionamiento Vacuum

From: Diego Ayala <netdiego81(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Jaime Casanova <jaime(at)2ndquadrant(dot)com>, Eduardo Morras <emorrasg(at)yahoo(dot)es>, POSTGRES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Funcionamiento Vacuum
Date: 2013-09-17 19:57:09
Message-ID: CANDf+nD3qw_bgzO_YQNjnerJt+jP9_yD=e4hDKAaP-ZNiA_O6g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gracias a todos por la gran ayuda. Jaime, me quedo con la duda donde dices
que VACUUM, ANALYZE, CREATE INDEX CONCURRENTLY; solo uno puede estar
corriendo en un momento dado, segun lo que entiendo mientras hago VACUUM,
no podria estar ejecutando ANALYZE ? o viseversa ? Gralmente suelo
ejecutar VACUUM VERBOSE ANALYZE desde consola, eso me podria ocacionar
problemas entonces.

Saludos a todos.

<-
El bloqueo apropiado si evita que VACUUM se ejecute

El VACUUM toma un bloqueo de tipo SHARE UPDATE EXCLUSIVE y como indica
la documentación
(
http://www.postgresql.org/docs/8.4/static/explicit-locking.html#LOCKING-TABLES
)
ese bloqueo tiene conflicto con otros SHARE UPDATE EXCLUSIVE (es
decir, de estos tres: VACUUM, ANALYZE, CREATE INDEX CONCURRENTLY; solo
uno puede estar corriendo en un momento dado).

Tambien tiene conflicto con SHARE (CREATE INDEX) y con ACCESS
EXCLUSIVE (ALTER TABLE, DROP TABLE, TRUNCATE, REINDEX, CLUSTER, and
VACUUM FULL)

El 17 de septiembre de 2013 15:30, Alvaro Herrera
<alvherre(at)2ndquadrant(dot)com>escribió:

> Jaime Casanova escribió:
> > 2013/9/17 Eduardo Morras <emorrasg(at)yahoo(dot)es>:
> > >
> > > Puede ser que una conexion de un cliente se quedara abierta y con un
> lock en dicha tabla, impidiendo que vacuum hiciese su trabajo. Lo que no se
> es si cuando vacuum encuentra un lock en una tabla se para o si sigue con
> la siguiente tabla sin lock.
> >
> > Depende de lo que la conexión abierta hubiera estado haciendo. Si dejo
> > abierta una transacción y estuvo leyendo (SELECT) o escribiendo
> > (INSERT/UPDATE/DELETE) en esa taba, VACUUM no podría procesar ciertas
> > tuplas en la tabla (pero si procesaría la tabla) y no causaría este
> > efecto.
>
> También podría ser una transacción preparada. Mira
> select * from pg_prepared_xacts;
>
> Si retorna más de cero filas, seguramente necesitarás abortarlas o
> comprometerlas.
>
> --
> Á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 Alvaro Herrera 2013-09-17 20:25:55 Re: Funcionamiento Vacuum
Previous Message Alvaro Herrera 2013-09-17 19:30:35 Re: Funcionamiento Vacuum