Em 17 de maio de 2011 13:22, Emanuel Araújo <[email protected]> escreveu:

>
>
> Sim, é uma prevenção para evitar perda de dados. Você deveria estar com o
>> autovacuum ligado ou, no mínimo, fazer vacuums manuais regularmente.
>> Para não ter que se preocupar com isso, mantenha o autovacuum ligado e bem
>> configurado.
>>
>
> Tenho as rotinas de manutenção rodando diariamente, mas mantemos o
> autovacuum "off", sei que o ideal seria ele estar "on", bem, como é essa
> prevenção
>

O que é feito nas suas rotinas?


> para evitar perda de dados? o vacuum não serve para marcar "tuplas
> inválidas" para serem re-utilizadas? Eu sei que existem outros parametros a
> ser usado com o vacuum, mas o conceito é esse... "liberar espaço" .
>

O conceito é "reaproveitar espaço". Mas é um conceito muito brando.
Qual versão do PostgreSQL está usando? A partir da versão 8.3 e introdução
do hot-update a probabilidade de wrap-around diminuiu bastante.

O PostgreSQL tem um contador de transações de 32 bits. As tuplas nas tabelas
tem várias "marcações" sobre qual transação fez algo sobre elas.
Note que 32 bits ~ 4 bilhões de possibilidades. Quando uma tabela "chega
perto" desse número de possibilidades se esgotar, entra o autovacuum para
fazer o ajuste das tuplas com "marcações" antigas demais e as ajusta para
que não haja a possibilidade de uma transação corrente ter número menor do
que uma transação antiga.

Veja em
http://www.postgresql.org/docs/8.3/static/routine-vacuuming.html#VACUUM-FOR-WRAPAROUNDa
relação entre o MVCC e o wraparound, e como configurar freeze_max_age
e
vacuum_freeze_min_age.


>
> Como posso fazer para desativá-lo ?
>

Você não pode dessativá-lo, apenas postergá-lo sob risco enorme de ter uma
tabela em freeze, aumentando a diferença entre min e max age.
Uma tabela em freeze, acredite, não é uma situação confortável.

[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a