powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как реализовать 2 кластера Postgresql
7 сообщений из 7, страница 1 из 1
Как реализовать 2 кластера Postgresql
    #39648514
Polad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

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

Требуется создать отказоустойчивый кластер 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
Как реализовать 2 кластера Postgresql
    #39648655
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как реализовать 2 кластера Postgresql
    #39648656
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polad,

stream или file replication не важно
...
Рейтинг: 0 / 0
Как реализовать 2 кластера Postgresql
    #39648657
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Polad,
пардон, ступил, прочитал pgpool как Slony
pgpool - это просто прокладка
...
Рейтинг: 0 / 0
Как реализовать 2 кластера Postgresql
    #39648823
Polad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Как реализовать 2 кластера Postgresql
    #39648896
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Polad]Vadim LejninPolad,
...
Я правильно понимаю, что при поточной репликации читать с реплики можно только в режиме hot standby?
...

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

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

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

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


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