pg_archivecleanup não encontrado Postgres 9.1, mesmo que esteja instalado?

3

Eu tenho a configuração de replicação de streaming em dois servidores do Postgres 9.1. Tudo está bem para além do arquivecleanup. Nos logs diz:

sh: 1: pg_archivecleanup: not found
2013-11-19 09:17:37 GMT WARNING:  archive_cleanup_command "pg_archivecleanup /var/lib   /postgresql/9.1/wals/ %r": return code 32512

Eu posso ver pg_archivecleanup em /usr/lib/postgresql/9.1/bin. Por que o Postgres não consegue ver isso?

    
por user199835 19.11.2013 / 10:50

2 respostas

2

Se você estiver usando a replicação de streaming do Postgres 9.1 Por que você precisa de limpeza de arquivos?

Sugiro a seguinte alternativa para toda a sua situação:

  1. Defina a retenção do segmento de log como algo sensato.
    Um bom ponto de partida para "sensible" seria definir wal_keep_segments para manter aproximadamente o mesmo número de segmentos de log que você mantinha anteriormente no arquivo do mestre.
    Você pode ajustar de lá conforme necessário.

  2. Desativar archive_mode em seus servidores.
    A replicação de streaming elimina a necessidade disso, e (1) acima significa que você terá muitos segmentos de log para restaurar se precisar.

  3. Livre-se do comando pg_archivecleanup em recovery.conf em seus escravos.
    (Porque você simplesmente não precisa disso com a replicação de streaming).

Dependendo do seu ambiente, você pode optar por deixar de fora (2) (se você tiver uma necessidade real do arquivo WAL que não seja a replicação), mas na maioria dos casos você só tinha esse arquivo para fazer replicação / log. envio de qualquer maneira. Salve o disco I / O.

    
por 10.12.2013 / 20:26
1

/usr/lib/postgresql/9.1/bin provavelmente não está no seu caminho. Eu sugiro que você coloque o caminho completo no seu arquivo de configuração.

    
por 19.11.2013 / 17:32