Репликация базы данных Postgres не отображается в реальном времени - PullRequest
1 голос
/ 03 мая 2019

Мне удалось выполнить репликацию PostgreSQL между двумя моими локальными компьютерами, изменив файлы pg_hba.conf и postgresql.conf на обоих компьютерах.

Затем на первом компьютере естьБаза данных, которая заполняется автоматически, и мы можем видеть ее в режиме реального времени.А на втором компьютере есть реплицированная база данных, связанная с ним, но мы не можем видеть ее обновления в режиме реального времени.

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

Когда я использую в psql команду

select * from pg_stat_replication;

, я вижу там свою репликацию, поэтому я предполагаю, что публикация и подписка сработали.Но в информации, которую показывает эта команда, в части sync_state она показывает async.Может быть, я должен изменить его на sync, чтобы он работал в режиме реального времени (все еще не знаю, как, я проверяю, "изменить публикацию" или "изменить подписку" ... пока не уверен)?

1 Ответ

0 голосов
/ 03 мая 2019

Для синхронной логической репликации, и если вы хотите, чтобы изменения были видны в режиме ожидания немедленно, установите synchronous_commit на remote_apply и добавьте имя подписки в synchronous_standby_names (обе настройки на основной).

Оба параметра должны быть установлены в postgresql.conf на основном (главном) сервере. Не забудьте перезагрузить компьютер, чтобы активировать изменения.

С синхронной репликацией вы всегда снижаете доступность всей системы, если у вас нет как минимум двух резервных серверов.

...