É possível usar o archive_command
para enviar para várias máquinas? É tão simples quanto separar com um &&
, já que é essencialmente apenas uma linha de comando?
command1 && command2
Presumo que isso possa ter um efeito ruim se um comando falhar, por exemplo, se command1
falhar, command2
não será executado; e se command2
falhasse, retornaria diferente de zero para a coisa toda e o Postgres tentaria novamente enviar o WAL, o que significaria que ele seria executado novamente command1
.
Espero que haja uma solução mais oficial para o problema. Meu objetivo é ter um backup dentro do data center e um backup fora do data center.
Primeiro, sempre crio um script wrapper ao criar comandos como esse. Isso torna mais fácil depurar o comando sem ter que sinalizar ao postgres para recarregar nada. Isso também facilita a inclusão do log do script do arquivador.
O que você precisa descobrir primeiro é como deseja que seus dados sejam replicados. A maneira como você está fazendo agora parece ok, pelo menos se você verificar se o arquivo de destino não existe antes de copiá-lo. Dessa forma, ele pode ser executado novamente quantas vezes você quiser e tentará copiá-lo para o local externo.
Acredito que você poderia fazer isso com vários
rsync
comandos em vez de usar algo comocp
. Dessa forma, se um servidor exigir uma reinicialização, os outros não serão afetados.Algo como:
Não oficial, mas teoricamente viável.