Назад | Перейти на главную страницу

Резервный сервер Postgres 12.2 завис при попытке восстановить архивы WAL

У меня есть три сервера Postgre 12.2, один из них - мастер, который выполняет потоковую репликацию на два других. Он делал это путем отправки архивов WAL на специальный сервер NFS. Я экспериментировал (конечно, не с настоящими), и теперь главный сервер хранит WAL в каталоге своей собственной машины, а два других извлекают их через scp. Однако один из моих серверов застрял при попытке восстановить несуществующий WAL.

scp: /var/walarchive/000000020000000000000032: No such file or directory
scp: /var/walarchive/00000003.history: No such file or directory
scp: /var/walarchive/000000020000000000000032: No such file or directory
scp: /var/walarchive/00000003.history: No such file or directory

Настройки моего резервного сервера:

restore_command = 'scp -i /usr/home/postgre/.ssh/id_rsa postgre@192.168.1.100:/var/walarchive/%f %p'

#primary_conninfo = 'host=192.168.1.100 port=5432 user=repl option=''-c wal_sender_timeout=50000'''

primary_slot_name = 'node_2'

Слот репликации существует и имеет правильное имя, я его проверил. Другой режим ожидания работает нормально. Я попытался решить эту проблему, сделав резервную копию с помощью pg_basebackup и восстановив с другого сервера согласно документации Postgre: стирая все в каталоге кластера, перемещая резервную копию и создавая файлы сигналов. Тем не менее, он продолжает терпеть неудачу. Я думаю, что упускаю что-то простое, но не могу сказать. Есть ли способ повторно синхронизировать мой экземпляр Postgre с мастером?

Спасибо. Я работаю над FreeBSD 12.0 - RELEASE, но, о чем я не могу сказать, у Postgres нет особых причуд для этого SO.

Редактировать: Я уже скопировал сегменты WAL сервера NFS в каталог pg_wal резервного сервера, думая, что там могут быть непримененные сегменты WAL, но это не решило проблему.