PostgresQL Automatizando o VACUUM FULL para tabelas inchadas

Temos um produto usando o servidor de banco de dados PostgreSQL que é implantado em algumas centenas de clientes. Alguns deles se reuniramdezenas de gigabytes de dados ao longo dos anos. Assim, na próxima versão, introduziremos procedimentos automatizados de limpeza que gradualmente arquivarãoEXCLUIR registros antigos durante trabalhos em lote noturnos.

Se bem entendi,autovacuum vai chutar e analisar e reorganizar as tuplas, assim o desempenho será como era quando existiam menos registros.

O espaço em disco real não será liberado, se eu entendi corretamente, uma vez que isso só acontece com umVÁCUO CHEIO, e isso não é desencadeado porautovacuum.

Então eu estava pensando em um processo automatizado que faria isso.

Eu encontrei o ponto de vista que é usado pelos nagios check_postgres emhttp://wiki.postgresql.org/wiki/Show_database_bloat.

Esta visão é boa? Estou correto em entender que se otbloat é> 2, poderia usar um VÁCUO CHEIO? E se oibloat é muito alto, poderia usar um REINDEX?

Quaisquer comentários sobre o seguinte trabalho para executar como trabalho em lote diário?

vacuumdb -Z mydatabase #vacuum com somente análiseselect tablename from bloatview order by tbloat desc limit 1vacuumdb -f -t tablename mydatabaseselect tablename, iname from bloatview order by ibloat desc limit 1reindexdb -t tablename -i iname mydatabase

Claro, eu ainda preciso envolvê-lo em um bom script perl no crontab (estamos usando o Ubuntu 12), ou o postgresql tem algum tipo de agendador com o qual eu poderia fazer isso?

Ou esse exagero total e existe um procedimento muito mais simples?

questionAnswers(2)

yourAnswerToTheQuestion