Estou usando o PostgreSQL 8.4 e estou criando um servidor em espera. Como o PostgreSQL 8.4 não tem suporte para replicação, eu fiz o seguinte para tentar obter acesso somente de leitura ao servidor em espera, e não para fazer o backup completo diariamente.
Defina o mestre para transferir arquivos WAL para o servidor em espera em postgresql.conf
archive_mode = on
archive_command = 'scp -C %p standby:/var/lib/pgsql/backups/%f'
crie um recovery.conf
no servidor em espera
restore_command = 'mv /var/lib/pgsql/backups/%f %p'
recovery_end_command = 'mv /var/lib/pgsql/data/recovery.{done,conf}'
pg_ctl restart -m fast
uma vez por dia
Então percebi que o PostgreSQL restaurou os arquivos WAL transferidos na inicialização, mas não depois de um reinício. Eu encontrei a próxima mensagem no arquivo de log.
LOG: selected new timeline ID: 2
Parece que o servidor em espera já está em uma nova linha do tempo, mas o servidor mestre ainda está enviando o arquivo WAL da linha de tempo antiga, o que faz com que o servidor em espera não seja restaurado.
Então, existe uma maneira de tornar possível alcançar o que estou tentando fazer?
Obrigado.
Tags postgresql database