Monday, June 2, 2008

RE: [pgsql-es-ayuda] No parar aplicación en vacuum full

OK.
Voy a hacer lo que me sugieres no utilizando el vacuum full y configurando el autovacuum para
esta tabla.

Ya os contaré el resultado.

Gracias y saludos,

Anna Pisa

________________________________________
De: Jaime Casanova [systemguards@gmail.com]
Enviat el: dilluns, 2 / juny / 2008 17:29
Per a: Pisa Borràs, Anna
A/c: pgsql-es-ayuda@postgresql.org
Tema: Re: [pgsql-es-ayuda] No parar aplicación en vacuum full

2008/6/2 Pisa Borràs, Anna <anna.pisa@tecsidel.es>:
> Documentándome entré en el maravilloso mundo del vacuum. Logré estabilizar
> el sistema haciendo un autovacuum cada hora, un vacuum full cada día ( a
> las 3 de la madrugada, que el sistema va mas descargado, se ejecuta un
> script con el vacuum full) y aumentar el valor de parámetros de memoria o
> free space map . Con esta configuración todo marcha sobre ruedas.
>

vacuum full no lo necesitas, solo haz vacuum normal...

> Ahora los detalles: la aplicación modifica una tabla, que puede llegar a
> tener unos 70 registros, cada uno recibe un update cada 15 segundos, con lo
> cual os podéis imaginar como crece esta tabla cada día.
>

es posible configurar autovacuum para que afecte a esta tabla de forma
mas frecuente creando un registro que haga referencia a esta tabla en
el catalogo pg_autovacuum

> Para que el vacuum full haga limpieza debo parar la aplicación, y la vuelvo
> a arrancar una vez ha acabado el vacuum full.

por eso no es conveniente el VACUUM FULL, y lo que es mas actualmente
ya ni siquiera se recomienda su uso...

> Cuando hice pruebas con la
> aplicación en funcionamiento encontraba cantidad de filas removibles pero
> luego no se podían borrar.
>
> INFO: "tabla": found nnnnnn removable, 70 non removable rows versions in
> xxxx pages
> DETAIL: nnnnnn dead row versions cannot be removed yet
>
> Es como si el vacuum full no pudiera bloquear la tabla para hacer la
> limpieza. (Puede ser esto realmente?)
>

Lo que esta pasando es que aun hay transacciones que pueden ver las
versiones viejas de esas tuplas. Mientras esas transacciones esten
corriendo VACUUM no se va a arriesgar a eliminarlas

> Mi pregunta es si hay algún mecanismo o parámetro que permita que el vacuum
> full haga la limpieza de dicha tabla sin parar la aplicación.
>

si. no lo uses :)

--
Atentamente,
Jaime Casanova
Soporte y capacitación de PostgreSQL
Guayaquil - Ecuador
Cel. (593) 087171157
--
TIP 1: para suscribirte y desuscribirte, visita http://archives.postgresql.org/pgsql-es-ayuda

No comments: