Репликация слотов не работает в 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 = вкл

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

  1. standby_mode = вкл
  2. primary_conninfo = 'host = 192.168.8.192 port = 5432 user = postgres password = 123456'
  3. primary_slot_name = 'testing'
  4. recovery_min_apply_delay = 1 мин

Чего не хватает? Я загрузил Резервные серверы с резервной копией данных Мастера. Благодарю.

1 ответ

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

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

$ EDITOR recovery.conf

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

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

Однажды я переехал recovery.conf в нужное место и перезапустил Postgres, SELECT * from pg_stat_replication возвращенный active = true,

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

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