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

Репликация слотов не работает в Postgres 9.4

Я использую Postgres 9.4 на сервере Windows 2008. Я использую три таких экземпляра. Один в качестве ведущего, а остальные два - в качестве ведомого / резервного. Версия Postgres - 9.4 во всех трех случаях. Я настроил репликацию с использованием физического слота. Но репликация не работает. При запросе SELECT * from pg_stat_replication; Возвращено 0 строк и включено SELECT * from pg_replication_slots; слот показывает, что он не активен («f» в столбце «активный»).

У меня такая конфигурация:

В начальной школе / магистратуре:

  1. wal_level = hot_standby
  2. max_wal_senders = 2
  3. max_replication_slots = 2
  4. hot_standby = включен

На вторичном / резервном:

  1. wal_level = hot_standby
  2. hot_standby = on

Файл recovery.conf на вторичном / резервном сервере:

  1. standby_mode = on
  2. primary_conninfo = 'хост = 192.168.8.192 порт = 5432 пользователь = пароль postgres = 123456'
  3. primary_slot_name = 'тестирование'
  4. recovery_min_apply_delay = 1 мин.

Что могло не хватать? Я загрузил резервные серверы с резервной копией данных мастера. Спасибо.

У меня была аналогичная проблема с Ubuntu. Для меня оказалось, что replication.conf был не в нужном месте.

Согласно Postgres Wiki на Потоковая репликация в разделе, описывающем recovery.conf:

$ РЕДАКТОР recovery.conf

Обратите внимание, что recovery.conf должен находиться в каталоге $ PGDATA.

Он НЕ должен находиться в том же каталоге, что и postgresql.conf.

Как только я переехал recovery.conf в нужное место и перезапустил Postgres, SELECT * from pg_stat_replication вернулся active = true.

Надеюсь, это поможет.