Ошибка восстановления PostgreSQL: слот репликации не существует

Окружающая среда: Postgresql 13.x(докеризованный)

Я пытался протестировать настройку аварийного восстановления для узлов PostgreSQL. Архив pg_basebackup и wal_files был взят из режима ожидания.

Выполнено восстановление на новом узле путем копирования и настройки postgresql.confиспользовать restore_commandуказывая на архив walfiles.

      #----------------------- RECOVERY CONFIGS -----------------------
restore_command = 'cp /db-restore/mydb/walfiles/%f "%p"'
recovery_target_timeline = 'latest'
recovery_target_action = promote
  • восстановление вроде нормальное. Некоторые случайные selectзапросы, возвращающие правильные результаты.
  • Но файл журнала часто выдает ошибку ниже.
      2022-04-19 10:19:53 UTC [291] rep_usr@[unknown] ERROR:  replication slot "slot_name" does not exist
2022-04-19 10:19:58 UTC [296] rep_usr@[unknown] ERROR:  replication slot "slot_name" does not exist
  • Поскольку я сделал резервную копию из режима ожидания, делает ли это восстановление новый узел в качестве резервного и ищет ли он, который использовался в предыдущем поколении?

  • Как я могу сделать новый узел мастером (удалить информацию о replication_slot)

  • Каковы правильные шаги для восстановления, если резервная копия была сделана из режима ожидания.

  • У меня есть 1 главный и 2 резервных узла. И планирую сделать резервную копию из резерва. Итак, требуются ли какие-либо конкретные изменения для archive_modeа также archive_commandпри использовании этого на резервном узле? Текущие команды:

      archive_mode = always
archive_level = logical
archive_command = 'test ! -f /db-archives/walfiles/%f && cp %p /db-archives/walfiles/%f'"

Может ли кто-нибудь помочь с этим? Любые указатели?

Я уверен, что db-backup будет иметь информацию о replication_slot и connection_info как pg_basebackupсама является клоном всей БД. Чтобы вернуть конфиги, я вручную удаляю postgresql.auto.confв mainкаталог, который содержит вышеуказанные параметры.

  • Итак, как я могу удалить любые другие ссылки на replication_slotесть ли такие в бэкапе БД?

1 ответ

Эти сообщения об ошибках, похоже, не выдаются восстановлением, а каким-то другим инструментом, который подключается как пользователь базы данных. rep_usr.

Создайте слот репликации, если это необходимо вашему приложению!

Другие вопросы по тегам