Atualmente estou passando por uma situação estranha. Arquivo failed_count
subindo de 0 a 2475.
Aqui alguns parâmetros que eu verifico:
- selecione * de pg_stat_archiver;
archived_count
3567;
last_archived_time
2022-08-17 21:36:05;
failed_count
2516;
last_failed_time
18-08-2022 10:58
select pg_switch_wal();
WAL está sempre mudando, muito 1-2 segundos.SELECT pg_wal_lsn_diff(pg_current_wal_lsn(), replay_lsn) FROM pg_stat_replication;
Isso também está mudando a cada segundo. Sempre girando de milhares para 0 durante o período de tempo.
SELECT COUNT(*) FROM pg_ls_dir('pg_wal') WHERE pg_ls_dir ~ '^[0-9A-F]{24}';
Desde as 12h desta manhã, esse valor era sempre 7450. Antes disso, sempre aumentava. O valor máximo observado foi 10811
SELECT * FROM pg_stat_bgwriter ;
Isso dá:Nome |Valor | ----------+---------------------------- -+ checkpoints_timed |109040 --> aumentando |
checkpoints_req |96 --> permanece o mesmo |
checkpoint_write_time|12514471288 | checkpoint_sync_time |1373072.0 | buffers_checkpoint |412734838 | buffers_clean |20745183 | maxwritten_clean |121362 | buffers_backend |98238043 | buffers_backend_fsync|0 | buffers_alloc |904724994 | stats_reset |2021-08-04 12:19:41.333 +0700|
Olhando para pg_stat_bgwriter
, checkpoints_timed está aumentando, o que é bom.
Isso acontece apenas com meus servidores de produção (o outro está testando o servidor).
- O que está acontecendo ? Por que o WAL parou de gerar, mas a contagem arquivada está falhando? Tenho a impressão de que, se não houver um novo WAL, o arquivamento não deve ocorrer.
- Qual parâmetro LOGGING devo ativar para monitorar esses erros?
Minha configuração:
name |setting |unit|
----------------------------+------------------------------------------+----+
archive_command |test ! -f /archive/%f && cp %p /archive/%f| |
archive_mode |on | |
archive_timeout |2400 |s |
checkpoint_completion_target|0.9 | |
checkpoint_flush_after |32 |8kB |
checkpoint_timeout |300 |s |
checkpoint_warning |30 |s |
hot_standby |on | |
log_checkpoints |off | |
max_replication_slots |10 | |
max_wal_senders |5 | |
max_wal_size |8192 |MB |
min_wal_size |2048 |MB |
synchronous_commit |off | |
synchronous_standby_names |* | |
wal_compression |off | |
wal_keep_segments |4000 | |
wal_level |logical | |
wal_log_hints |off | |
wal_segment_size |16777216 |B |
wal_sender_timeout |60000 |ms |
Por favor ajude. Obrigado
O PostgreSQL continua tentando arquivar o mesmo segmento WAL repetidamente. É por isso que o número de falhas continua aumentando, mesmo que nenhum novo WAL seja gerado.
Corrija o problema – as mensagens de erro no log do PostgreSQL devem fornecer uma pista sobre a causa.