Em 4 de setembro de 2017 09:51, Luiz Carlos L. Nogueira Jr.
escreveu:
> E o que fazer para evitar que o autovacuum rode durante o expediente?
>
Antes de mais nada, por que desabilitar o autovacuum durante o
expediente? "porque ele trava a tabela" ou "porque ele prejudica a IO"
não é geralmente a análise correta pois o VACUUM não trava registros e
você pode controlar a IO do autovacuum (vide
autovacuum_vacuum_cost_delay).
O comando abaixo desabilita o autovacuum para a tabela e sua tabela
TOAST (avalie a necessidade de desabilitar um, outro ou ambos).
ALTER TABLE foo SET (autovacuum_enabled = false,
toast.autovacuum_enabled = false);
> Não entendo uma coisa. Se eu passo o vacuum manual achava que ele dizia
> "olhe não tem linhas a serem recicladas", mas isso não acontece pois o
> autovacuum não considera isso
>
Você está equivocado. A rotina interna é a mesma. A diferença é que um
é disparado pelo comando e outro por um módulo em segundo plano.
Quanto a tabela inchada e zero linhas a serem recicladas, isso pode
ser consequência de: (i) uma transação longa ou (ii) replicação (para
não cancelar consultas é necessário evitar que o VACUUM limpe
registros já excluídos no servidor principal mas que são úteis para
consultas em execução no servidor secundário).
O que pode estar acontecendo é que você precisa fazer um tuning no
autovacuum para que ele dispare no momento adequado.
--
Euler Taveira Timbira -
http://www.timbira.com.br/
PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral