Tiago Adami escreveu:
> Frequentemente tenho problemas relacionados a arquivos do WAL
> corrompidos ou não existentes
> 
Você não nos disse qual o erro e nem mesmo qual é a versão (8.3.x?) que está
utilizando. Inúmeros bugs foram corrigidos nesta área. Você deve utilizar
sempre a última versão da série 8.3 (no momento 8.3.11).

> 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
> 
Reduzindo os valores de checkpoint só irá aumentar a I/O na máquina.

> 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.
> 
A escrita dos dados em disco já está garantida pelo parâmetro fsync. Além
disso, o WAL é escrito *no momento* do COMMIT. O que o checkpoint faz é
escrever o que vai para o WAL (e está na memória) nos arquivos de dados (aka
datafiles).

Aposto R$ 0,02 que o seu problema está na utilização de versões antigas do
PostgreSQL e/ou de um sistema de arquivos não-confiável.


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a