Estou configurando um mestre Postgres 9.1 e um servidor hot standby. Eu li a documentação, mas ainda não tenho certeza do que devo fazer com meus arquivos WAL.
Cada confirmação é feita em ambos os servidores antes de retornar ao aplicativo, portanto, arquivar os WALs em algum terceiro sistema parece inútil. Mas imagine que meu servidor de backup quente falha, então terei que reconfigurar manualmente a instância mestre para não usar nenhum servidor em espera. É sensato ativar o arquivo WAL somente então?
Presumo que não, porque os WALs recém-criados serão inúteis para qualquer hot standby recém-configurado. Devo sempre ter o arquivo WAL ativo e, de tempos em tempos, fazer um backup instantâneo completo do sistema em execução e, em seguida, excluir manualmente os antigos WALs arquivados por seu registro de data e hora? Então, eu poderia configurar rapidamente uma nova instância de hot standy se a instância de hot standby atual falhar? Ou é melhor apenas permitir que um novo servidor hot standby se atualize por conexão TCP porque ele faz alguma transferência em massa de alto rendimento do banco de dados e só muda para reproduzir WALs de fluxo quando está quase atualizado? Isso seria ótimo, porque então eu não teria que me preocupar com o arquivamento do WAL?
Se a gravação no banco de dados não funcionar por algumas horas, não me importo, apenas as leituras devem estar altamente disponíveis.
Editar: também estou interessado em alguns detalhes sobre como um novo hot standby alcançaria o banco de dados mestre. Tudo é feito em transações ou há algum catchup de TCP de alta velocidade envolvido, o que seria semelhante (em complexidade de tempo de execução) a apenas copiar os discos.
O arquivo Wal é útil para fins de backup. Por exemplo - você faz backup completo todos os dias e mantém os segmentos wal desde o último abckup, graças a isso você sempre pode colocar o banco de dados em qualquer estado durante o dia (por exemplo - pouco antes de alguém executar: drop table users cascade; ).