Репликация через pglogical на установке hot_standby

Я запускаю две базы данных (PostgreSQL 9.5.7) в конфигурации ведущий/подчиненный. Мое приложение подключается к экземпляру pgpool, который направляется к основной базе данных (и подчиненному для запросов только для чтения).

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

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

Пробовал следующие вещи:

  1. подписан на ведомом устройстве, так как вероятность того, что оно выйдет из строя или перегреется, меньше: репликация на резервном узле невозможна.
  2. подписано через сервер pgpool: pgpool не принимает соединения для репликации.
  3. подписаны на оба сервера: конфигурация pglogical реплицируется, поэтому нельзя дать им разные имена узлов.

Единственное, о чем я сейчас думаю, это написать свой собственный tcp-прокси, который регулярно проверяет состояние сервера, на который я могу подписаться.

Есть ли другой/более простой способ решить эту проблему? Возможно, я использую неправильные инструменты?


person Youri    schedule 26.06.2017    source источник
comment
Какую версию PostgreSQL вы используете?   -  person Arkhena    schedule 26.06.2017
comment
Я использую PostgreSQL 9.5.7.   -  person Youri    schedule 26.06.2017
comment
Вы не первый, кто столкнулся с этой проблемой... Вы можете найти это полезным: github.com /2ndQuadrant/pglogical/issues/83   -  person Arkhena    schedule 26.06.2017
comment
Спасибо. Я думаю, что могу предположить, основываясь на потоке github, что нет решения, кроме как ждать PostgreSQL 10 или использовать правила маршрутизации?   -  person Youri    schedule 27.06.2017


Ответы (1)


Итак, кажется, что пока нет решений для этой проблемы. Поскольку данные в моей логически реплицированной базе данных не изменяются быстро, не будет никакого вреда, если репликация остановится на мгновение.

Действия при аварийном переключении могут быть следующими:

  • Повторно подпишитесь на продвинутого мастера.
  • или повысить статус резервного узла до главного после аварийного переключения.
person Youri    schedule 27.06.2017