Решение для потоковой репликации в Postgres - PullRequest
0 голосов
/ 03 февраля 2019

Я читаю статью ниже, как добиться потоковой репликации в базе данных Postgres.

https://www.percona.com/blog/2018/09/07/setting-up-streaming-replication-postgresql

Некоторые вещи не совсем ясны

1) ОбаЭкземпляры БД активны ИЛИ ведомый экземпляр - это просто клон мастера (или он связывается с мастером, но не с бэкэндом?

2) Если мастер-узел БД вышел из строя, что произойдет, пока второй узел не вернется в оперативный режим?Это покрыто по умолчанию просто наличием процессов wal sender и wal receiver или что-то еще нужно добавить?

3) Какой DB_HOST: PORT следует настроить в приложении бэкэнда, если, например, у меня есть два бэкендаузлы (оба они активны)?

1 Ответ

0 голосов
/ 04 февраля 2019
  1. Если hot_standby = on в postgresql.conf, клиенты могут подключаться к режиму ожидания, но только читать данные и не изменять их.Резервный - это идентичный физический код первичного сервера, точно так же, как если бы вы скопировали его файл за файлом.

  2. Если первичный произошел сбой, резервный компьютер будет работать и работать, но вы все равно продолжите работу.может только читать данные, пока кто-то не переведет в режим ожидания.Вы должны понимать, что PostgreSQL не поставляется с кластерным программным обеспечением, которое позволяет этому происходить автоматически.Для этого вам необходимо приобрести другое программное обеспечение, например, Patroni.

  3. Это зависит от API, используемого вашим программным обеспечением.С libpq (C API) или JDBC вы можете иметь строку подключения, которая содержит оба сервера и будет выбирать основной автоматически, но с другими клиентами вам, возможно, придется использовать внешнее программное обеспечение для балансировки нагрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...