1

Я использую PostgreSQL 8.4 и создаю резервный сервер. Поскольку PostgreSQL 8.4 не имеет встроенной поддержки репликации, я попытался выполнить следующие действия, чтобы получить доступ только для чтения к резервному серверу, а не для ежедневного полного резервного копирования.

  • Установите мастер для передачи файлов WAL на резервный сервер в postgresql.conf

    archive_mode = on  
    archive_command = 'scp -C %p standby:/var/lib/pgsql/backups/%f'
    
  • создать recovery.conf на резервном сервере

    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 один раз в день

Затем я понял, что PostgreSQL восстановил переданные файлы WAL при первоначальном запуске, но не после перезагрузки. Я нашел следующее сообщение в файле журнала.

LOG: выбран новый идентификатор временной шкалы: 2

Кажется, что резервный сервер уже находится на новой временной шкале, но главный сервер все еще отправляет файл WAL старой временной шкалы, что делает резервный сервер не восстанавливаемым.

Так есть ли способ сделать возможным достичь того, что я пытаюсь сделать?

Благодарю.

0