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

Responder a