Desejo configurar o sistema de replicação no postgresql como #1 MASTER SERVER e dois servidores replicados: #2 SERVER em tempo real (para balanceamento de carga), #3 SERVER atrasado com algum deslocamento de tempo (por exemplo, 2 dias) para evitar aplicativos e erros humanos em atualizar/excluir dados
Alguém tem alguma experiência com esse tipo de configuração? Quais são as desvantagens e problemas da vida real com essa solução?
Se você está considerando o PostgreSQL 9.0 com Hot Standby, configure o arquivo para que os arquivos compactados só fiquem disponíveis para o escravo após um certo tempo. Por exemplo, você pode ter um pequeno script de shell que vincula os arquivos de um diretório de arquivo de entrada para um de saída com base nos registros de data e hora do arquivo. Certifique-se de preservar o pedido. (Naturalmente, não ative a replicação de streaming se fizer isso.)
Eu não examinei a replicação integrada no Postgres 9, mas se você estiver usando o Slony-I com envio de logs , basta esperar para aplicar os arquivos de logs até que tenham uma determinada idade. Usamos um script perl no cron que se conecta ao servidor mestre e extrai os arquivos de log e os aplica. Não deve ser nada puxar coisas para a réplica para enfileirar e, em seguida, passar e aplicá-las, parando quando você acertar as que são muito novas.