Как правильно настроить логическую репликацию postgresql (двумя способами)? - PullRequest
0 голосов
/ 22 февраля 2019

Не могу решить эту проблему:

Если есть 2 сервера postgresql, используется логическая репликация (публикация, подписчики) некоторых таблиц, если она работает в одном направлении - все хорошо, но начинается ужасв обе стороны.

Те.На сервере server1 и server2 имеются идентичные базы данных с одной и той же таблицей задач.Согласно реплике, от server1 к server2 передаются только INSERT и UPDATE, затем на server2 логика обрабатывает задачи и записывает обновления статуса в задачи, которые соответственно отправляются обратно на server1 (только UPDATE возвращается на сервер).

Проблема в том, что мы получаем зацикленную реплику (на первом сервере достаточно установить статус 1, затем установить статус 2 на сервере 2, и мы видим, что в наших таблицах статус задачи будет бесконечно изменяться с 1до 2 и наоборот бесконечно, что усложняет работу с данными и засоряет журналы. К сожалению, нет способа изменить логику приложения. От идей только включить ответ при необходимости (т. е. не в режиме реального времени), но по определенному графику, чтобы статус был фиксирован)

1 Ответ

0 голосов
/ 22 февраля 2019

Как уже упоминал @JosMac, вам нужно Репликация с несколькими хозяевами , которая в настоящее время не поддерживается в ядре PostgreSQL (на сегодняшний день v11-12).Существует различных решений для нескольких мастеров для PostgreSQL, но если вы хотите использовать open-source, вы можете попробовать Postgres-XL .

...