Caríssimos colegas, a muito tempo estou tentando minimizar os problemas que acontecem com o PostgreSQL (versão 8.3) em ambientes Windows quando há desligamento incorreto da máquina.
Frequentemente tenho problemas relacionados a arquivos do WAL corrompidos ou não existentes (exigindo o uso do pg_resetxlog), sem contar corrompimento de índices em tabelas do catálogo do banco de dados (que nem um reindexdb -s resolve, é preciso um DUMP/RESTORE). Depois de muitas tentativas, alterei as configurações do WAL em um cliente e estou acompanhando o movimento na base de dados OLTP. Até agora não houve mais incidência de problemas, mas gostaria de verificar no que pode impactar estas mudanças no arquivo postgresql.conf, se estou caminhando na direção certa ou não. Lembrando que estas configurações foram alteradas visando diminuir ao máximo a necessidade de intervenção por parte de um técnico (no caso, eu mesmo) já que não é raro acontecer uma queda de energia ou então (como já aconteceu antes) o no-break gastar a bateria e o usuário nem perceber que estava com a rede principal desligada (usuários leigos, não há muito o que se fazer nestes casos). As configurações alteradas foram: # WAL # fsync = on synchronous_commit = on full_page_writes = on wal_buffers = 64kB wal_writer_delay = 1ms commit_delay = 0 commit_siblings = 1 # - Checkpoints - checkpoint_segments = 1 checkpoint_timeout = 30s Resumindo: deixei apenas um segmento para o checkpoint e reduzi ao máximo possível o tempo em que o WAL é escrito para tentar evitar que alguma coisa fique pendente. A idéia é fazer os dados sejam efetivados após o COMMIT o mais rápido possível. São sistemas considerados de missão crítica para nós (frentes de caixa de supermercados) portanto confiabilidade deve vir antes de desempenho, mesmo porque basicamente não há concorrência de transações (salvo quando o servidor de replicação manda atualizações). Fiz as alterações baseado na documentação em [1]. [1] http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html -- TIAGO J. ADAMI http://www.adamiworks.com _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral