Репликация слотов не работает в Postgres 9.4
Я использую Postgres 9.4 на сервере Windows 2008. Есть три таких случая, которые я использую. Один в качестве хозяина, а остальные два - раб / резерв. Версия Postgres - 9,4 во всех трех случаях. Я настроил репликацию с использованием физического слота. Но репликация не работает. На запрос SELECT * from pg_stat_replication
; 0 строк возвращены и включены SELECT * from pg_replication_slots
; слот показывает, что он не активен ("f" в столбце "активный").
У меня есть следующая конфигурация:
На начальном / магистральном:
- wal_level = hot_standby
- max_wal_senders = 2
- max_replication_slots = 2
- hot_standby = вкл
На вторичном / резервном:
- wal_level = hot_standby
- hot_standby = вкл
файл recovery.conf на вторичном / резервном сервере:
- standby_mode = вкл
- primary_conninfo = 'host = 192.168.8.192 port = 5432 user = postgres password = 123456'
- primary_slot_name = 'testing'
- 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
,
Надеюсь, это поможет.