Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как реализовать 2 кластера Postgresql / 7 сообщений из 7, страница 1 из 1
23.05.2018, 11:03
    #39648514
Polad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать 2 кластера Postgresql
Добрый день.

Подскажите как можно реализовать следующую схему:

Требуется создать отказоустойчивый кластер PostgreSQL для работы операторов во внутренней сети.
Тут с реализацией понятно, вариантов много. Это будет основной кластер.

Дополнительно нужно поднять еще один кластер с копиями БД-ых (репликация БД-х) из основного кластера для доступа веб приложений только на чтение. По идее можно было бы веб-приложения направить на Slave ноды основного кластера, но требуется, чтобы вебы ходили на отдельный кластер или отдельные сервера PostgreSQL.

С MS SQL реализация была следующей:
WSFC кластер + SQL FCI - для работы операторов.
NLB cluster + 3 сервера с SQL StandAlone READ Only (на которые шла транз. репликация с основного SQL) - для доступа веб-приложений. Приложение обращалось к БД по общему айпишнику, а нлб направлял на один из SQL серверов.

Как что-то подобное развернуть на PostgreSQL?
Если я первый кластер реализую с использованием pgpool-II + PostgreSQL + Streaming replication + Hot standby,
можно ли с Master Node создать потоковую репликацию на отдельный PostgreSQL или кластер, с которых веб-приложения читали данные.
...
Рейтинг: 0 / 0
23.05.2018, 13:24
    #39648655
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать 2 кластера Postgresql
PoladДобрый день.

Подскажите как можно реализовать следующую схему:


Дополнительно нужно поднять еще один кластер с копиями БД-ых (репликация БД-х) из основного кластера для доступа веб приложений только на чтение. По идее можно было бы веб-приложения направить на Slave ноды основного кластера, но требуется, чтобы вебы ходили на отдельный кластер или отдельные сервера PostgreSQL.

...
Если я первый кластер реализую с использованием pgpool-II + PostgreSQL + Streaming replication + Hot standby,
можно ли с Master Node создать потоковую репликацию на отдельный PostgreSQL или кластер, с которых веб-приложения читали данные.
Если правильно понял Ваши хотелки, то делается штатно из коробки, если нужен только RO то достаточно каскадного standby
Вы можете использовать physical standby как RO, pgpool тут не нужен
Код: plaintext
1.
2.
3.
4.
master -> sync standby -> async standby
                       -> async standby
                       -> async standby
...
...
Рейтинг: 0 / 0
23.05.2018, 13:25
    #39648656
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать 2 кластера Postgresql
Polad,

stream или file replication не важно
...
Рейтинг: 0 / 0
23.05.2018, 13:27
    #39648657
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать 2 кластера Postgresql
Polad,
пардон, ступил, прочитал pgpool как Slony
pgpool - это просто прокладка
...
Рейтинг: 0 / 0
23.05.2018, 15:35
    #39648823
Polad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать 2 кластера Postgresql
Vadim LejninPolad,
пардон, ступил, прочитал pgpool как Slony
pgpool - это просто прокладка

По сути мне нужен postgresql кластер (failover + load balancihg)
и с него репликация, к примеру, на 2 отдельно стоящих PG RO.
Перед которыми будет стоять балансировщик для доступа Web Application.


Я правильно понимаю, что при поточной репликации читать с реплики можно только в режиме hot standby?
Какую репликацию можно использовать, что можно было читать с реплики?

app web
|
|
балансировщик
|
|
PG RO1 and PG RO2 (рид онли реплики с основной БД-ых)
| |
основной кластер баз данных (на базе pgpool 2 или haproxy)
PG Master and PG Standby
|
операторы БД-ых (сотрудники)
...
Рейтинг: 0 / 0
23.05.2018, 17:06
    #39648896
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать 2 кластера Postgresql
[quot Polad]Vadim LejninPolad,
...
Я правильно понимаю, что при поточной репликации читать с реплики можно только в режиме hot standby?
...

Можно использовать и файловую, (будет GAP), но зачем?
не уверен, что haproxy умеет распределять нагрузку для базы
насколько я помню, она умеет только web раскидывать

то есть для раскидывания нагрузки на базу нужен pgpool

Схема предложенная Вами вполне работоспособна, чего-то аналогичное использовали наши в проекте
...
Рейтинг: 0 / 0
24.05.2018, 10:27
    #39649221
big-trot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать 2 кластера Postgresql
Polad,

Если правильно понял, то у вас имеется 1) группа серверов, которая входит в пул и доступ к БД организуется через pgpool, 2) и отдельно стоящий сервер БД, который не входит в пул, но этот сервер является репликой, какого-то сервера из пула. Доступ к отдельному серверу обеспечивается через какой-то балансировщик (например pgbouncer) и все транзакции читающие.
Такую конфигурацию собрать можно. Но я вижу следующие затруднения, которые могут возникнуть в ходе эксплуатации. И основной вопрос заключается в том, что вы будете делать, если откажет ведущий сервер, на который настроена репликация отдельно стоящего сервера. Если не стоит задача высокой доступности, то администратор БД выявив эту ситуацию, выполнит руками переключение отдельно стоящей реплики на другой сервер из пула. В данном варианте - вполне работоспособная конфигурация.
А вот если вы захотите автоматизировать этот процесса, т.е. чтобы выполнялось автоматическое переключение отдельно стоящей реплики на другой сервер, тот ту без дополнительной программы не обойтись. Эта программа должна 1) отслеживать работоспособность ведущего сервера, 2) в случае отказа ведущего сервера выполнять на лету перенастройки на новый ведущий сервер, 3) выполнить восстановление БД с нового ведущего сервера и стартовать отдельно стоящий сервер. В данном случае посмотрите в сторону keepalived.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как реализовать 2 кластера Postgresql / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]