No meu diretório PostgreSQL pg_wal, o total de segmentos wal soma cerca de 200 GB, onde max_wal_size 8 GB.
Arquivamos o arquivo WAL no local desejado usando archive_command , mas o arquivo wal não foi removido do diretório pg_wal, não sei por quê?
Eu tenho um cluster de banco de dados de 3 nós mantido pelo pgpool. Onde o node3 está inativo por algum motivo. Por causa disso, o slot de replicação não está ativo. Aqui node1 é primário e node2 é o nó de espera que está funcionando bem e o slot de replicação está ativo.
Basicamente, quero saber por que o PostgreSQL não está removendo os arquivos WAL do diretório pg_wal? E como resolver isso?
Presumo que ele esteja mantendo esses arquivos WAL por causa do slot de replicação do node3 que não está ativo.
Se eu estiver certo, o que devo fazer neste caso? Devo excluir esse slot de replicação do node3 para resolver esse problema.
Nota: não quero recuperar esse node3 agora.
Sim, o problema provavelmente é um slot de replicação.
Execute a seguinte instrução no nó primário para ver o atraso de cada slot de replicação:
Depois de identificar o slot de replicação obsoleto, descarte-o com
Então espere pelo próximo ponto de verificação ou execute
Agora os segmentos extras do WAL devem ter desaparecido.
Encontre mais informações básicas em meu artigo .