Existe uma maneira de deixar o PostgreSQL restaurar, mas não criar uma nova linha do tempo?

1

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.

    
por user218669 26.03.2015 / 08:33

0 respostas