> Cenário: Replicação entre duas máquinas de banco de dados na mesma rede,
> ambas com o mesmo sistema operacional e mesma versão de banco de dados.
>
> Parâmetros utilizados no mestre:
>
> wal_level = hot_standby
> checkpoint_segments = 220
> checkpoint_timeout = 10min

Seu banco escreve tanto assim?
Para fazer um bom tuning do checkpoint_segments eu faço assim:
- mantenho o checkpoint_timeout em 5min (default);
- ligo log_checkpoints
- verifico se os checkpoints estão começando por tempo em produção
normal (fora de cargas de dados);
- se estão começando por tempo, os checkpoint_segments estão suficientes.
220 me parece exagerado, mesmo para cargas altíssimas de escrita. O
máximo que cheguei foi 150.

> checkpoint_completion_target = 0.9

Você tem bons discos, suponho. Em discos comuns SAS 15.000 RPM eu
deixo este cara a 0.8 pra não arriscar que um checkpoint se atrase na
finalização, ainda mais considerando sua alta carga de escrita.
Prefiro aumentar um pouco os parâmetros do bgwriter e deixar menos
dados pro checkpoint. Faz uma baita diferença. Suas taxas de escrita
estão monitoradas nos discos? Seu pg_xlog está num disco à parte?

> archive_mode = on
> archive_command = 'rsync -az --remove-sent-files %p

Ooops... por que "--remove-sent-files"?
Os logs já arquivados estão sendo removidos? Isso pode ser a causa do
erro que você está vendo. Dá uma olhada, o arquivo que o PostgreSQL tá
pedindo ainda está no seu diretório de arquivados?

> postgres@ip:/diretorio_logs_transacao/%f'
>
> max_wal_senders = 3

Quantos escravos você tem? A relação é 1:1, se são só dois servidores
(mestre e escravo) você precisa de 1 sender.

> wal_keep_segments = 3

Se seus logs estão sendo apagados, com a taxa de escrita que estou
pressupondo, este parâmetro está baixo.

>
> Parâmetros utilizados no escravo:
>
> hot_standby = on
>
> E depois as configurações do arquivo recovery.conf.

Passa aqui o recovery.conf pra nós!

>
> Flávio, o escravo tem acesso sim aos meus logs de transação.

Mas veja se eles não estão sendo apagados pelo seu comando rsync.

[]s!
Flavio
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a