Fábio, minha intenção é a mesma tua, isto é, ajuda, mas de boas intenções o inferno está cheio e pode estar sendo o meu caso.

No caso em questão o mal-falado BDCR me "manteve vivo" e em condições de procurar alternativas para esses e outros problemas que ainda tenho classificados como "inexplicados". Para você e os demais terem uma idéia:

1. Bases grandes que não são "enchugadas" pelo vacuum, mas que o são por um BDCR.
2. Vacuum que leva de 6 a 8 horas rodando, mas que após um restart do servidor rodam em 2 horas.
3. Índices não utilizados pelo otimizador que "escolhe" usar caminhos inexplicáveis e onerosos.
4. Critérios para definição de parâmetros do postgresql.conf.

Todos esses temas já foram discutidos diversas vezes nesta excelente e por vezes salvadora lista e esses e outros casos que não lembro, muitas vezes são difíceis ou demorados de reproduzir e todos nós temos, via de regra, pouco tempo disponível, então o assunto acaba se esvaindo e a pobre vítima que se deparou com o problema precisa dar um jeito de sobreviver. Por exemplo, acredito que o particionamento de tabelas que estamos projetando possivelmente resolva ou atenue um ou mais desses problemas, mas isto quer dizer que contornei o problema e não que o identifiquei e resolví.

Assim não acho que usar um BDCR em determinados casos e enquanto uma solução elegante não aparece seja um demérito ao banco. Pode ser um demérito nosso que ainda não achamos a solução adequada (por falta de tempo, etc), mas não do banco que utilizo largamente. A propósito é o único banco que tenho homologado com nosso ERP, mas isto não quer dizer que não existam coisas a serem criadas, melhoradas e corrigidas, que o digam as versões e releases ...

Não quero polemizar com esse assunto, mas acho que temos que achar outra forma, mais produtiva de RESOLVER / encaminhar este tipo de caso que por vezes ocorre, porque normalmente as pessoas acabam cansando/desistindo de discutir o caso quando o esforço é grande e os resultados pequenos ou inexistentes e mais adiante o problema volta pelas mãos de outro membro.

abraços,
Sergio Medeiros Santi

Em 06/05/2010 10:22, Fábio Telles Rodriguez escreveu:
Em 6 de maio de 2010 08:48, Sergio Santi <sergio.tra...@gmail.com> escreveu:
Primeiramente ninguém disse para fazer backup, drop, create e restore (bdcr) toda a semana. Eu disse faça hoje a noite se possível, ou no próximo final de semana. Eu tentei seguir essa teoria da manutenção tradicional, mas quando isto não resolveu foi necessário apelar para esta medida paleativa e "absurda", mas que resolveu o caso.

Posso até concordar que não deveria ser necessário que o vacuum deveria dar conta disto, mas não dá. Essa discussão já rolou umas duas vezes e ninguém conseguiu mostrar que este procedimento não é útil de tempos em tempos. Em bases pequenas não executo nunca, em bases médias (<30GB) 2 ou 3 vezes por ano, já em bases grandes faço a cada 2 meses se existirem feriados disponíveis. Na época em que tive essa experiência desagradável busquei socorro nesta lista, tentei de tudo, e o que manteve o paciente vivo foi essa "benzedura". Um dia os estudiosos do postgresql vão descobrir uma explicação científica para isto, mas enquanto isto ....

Sérgio, minha intenção aqui é ajudar o Marcio que apareceu com uma dúvida.

Veja que a coisa mais importante no caso dele é que ele faz o Vacuum. Isso é a PRIMEIRA coisa que ele deve testar.

Não tenho acompanhado a lista com tanta frequência como eu gostaria. Talvez algum problema seu tenha passado desapercebido por alguns gurus aqui da lista. Recomendo enfaticamente tentar as listas internacionais em casos extremos como o seu. De toda forma, eu jamais colocaria todas as fichas no vacuum. Veja que eu citei também o REINDEX[1] e o CLUSTER[2] e de cabeça poderia sugerir para mexer nos parâmetros de storage de algumas tableas como o parâmetro fillfactor [3]. São algumas sugestões. É claro que cada aplicação é uma aplicação. Se você realiza cargas monstruosas, com frequência, realiza DELETEs em % significativa de registros de grandes tabelas, tudo isso vai fazer o seu banco sofrer (não só o PostgreSQL, como qualquer outro SGDB). 

O particionamento de tabelas pode lhe ajudar muito também. É sempre um conjunto de técnicas que são utilizadas para manter um banco de dados no ar com boa performance. Nunca é um único problema. 

Por fim, dizer publicamente que você precisa realizar um "DUMP, DROP, CREATE, IMPORT" (estou trocando as palavras "backup" por "dump" e "restore" por "import" para não fazer confusão com o backup físico) seja um procedimento recomendável é dizer que o SGDB não presta definitivamente. Eu não utilizaria um SGDB assim. Espero nunca ter de me retratar por dizer isso, mas esta é a minha expectativa.

[]s
Fábio Telles
--
blog: http://www.midstorm.org/~telles/
e-mail / jabber: fabio.tel...@gmail.com
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Reply via email to