|
Как реализовать 2 кластера Postgresql
|
|||
---|---|---|---|
#18+
Добрый день. Подскажите как можно реализовать следующую схему: Требуется создать отказоустойчивый кластер 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 или кластер, с которых веб-приложения читали данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 11:03 |
|
Как реализовать 2 кластера Postgresql
|
|||
---|---|---|---|
#18+
PoladДобрый день. Подскажите как можно реализовать следующую схему: Дополнительно нужно поднять еще один кластер с копиями БД-ых (репликация БД-х) из основного кластера для доступа веб приложений только на чтение. По идее можно было бы веб-приложения направить на Slave ноды основного кластера, но требуется, чтобы вебы ходили на отдельный кластер или отдельные сервера PostgreSQL. ... Если я первый кластер реализую с использованием pgpool-II + PostgreSQL + Streaming replication + Hot standby, можно ли с Master Node создать потоковую репликацию на отдельный PostgreSQL или кластер, с которых веб-приложения читали данные. Если правильно понял Ваши хотелки, то делается штатно из коробки, если нужен только RO то достаточно каскадного standby Вы можете использовать physical standby как RO, pgpool тут не нужен Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 13:24 |
|
Как реализовать 2 кластера Postgresql
|
|||
---|---|---|---|
#18+
Polad, stream или file replication не важно ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 13:25 |
|
Как реализовать 2 кластера Postgresql
|
|||
---|---|---|---|
#18+
Polad, пардон, ступил, прочитал pgpool как Slony pgpool - это просто прокладка ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 13:27 |
|
Как реализовать 2 кластера Postgresql
|
|||
---|---|---|---|
#18+
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 | операторы БД-ых (сотрудники) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 15:35 |
|
Как реализовать 2 кластера Postgresql
|
|||
---|---|---|---|
#18+
[quot Polad]Vadim LejninPolad, ... Я правильно понимаю, что при поточной репликации читать с реплики можно только в режиме hot standby? ... Можно использовать и файловую, (будет GAP), но зачем? не уверен, что haproxy умеет распределять нагрузку для базы насколько я помню, она умеет только web раскидывать то есть для раскидывания нагрузки на базу нужен pgpool Схема предложенная Вами вполне работоспособна, чего-то аналогичное использовали наши в проекте ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2018, 17:06 |
|
Как реализовать 2 кластера Postgresql
|
|||
---|---|---|---|
#18+
Polad, Если правильно понял, то у вас имеется 1) группа серверов, которая входит в пул и доступ к БД организуется через pgpool, 2) и отдельно стоящий сервер БД, который не входит в пул, но этот сервер является репликой, какого-то сервера из пула. Доступ к отдельному серверу обеспечивается через какой-то балансировщик (например pgbouncer) и все транзакции читающие. Такую конфигурацию собрать можно. Но я вижу следующие затруднения, которые могут возникнуть в ходе эксплуатации. И основной вопрос заключается в том, что вы будете делать, если откажет ведущий сервер, на который настроена репликация отдельно стоящего сервера. Если не стоит задача высокой доступности, то администратор БД выявив эту ситуацию, выполнит руками переключение отдельно стоящей реплики на другой сервер из пула. В данном варианте - вполне работоспособная конфигурация. А вот если вы захотите автоматизировать этот процесса, т.е. чтобы выполнялось автоматическое переключение отдельно стоящей реплики на другой сервер, тот ту без дополнительной программы не обойтись. Эта программа должна 1) отслеживать работоспособность ведущего сервера, 2) в случае отказа ведущего сервера выполнять на лету перенастройки на новый ведущий сервер, 3) выполнить восстановление БД с нового ведущего сервера и стартовать отдельно стоящий сервер. В данном случае посмотрите в сторону keepalived. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2018, 10:27 |
|
|
start [/forum/topic.php?fid=53&fpage=55&tid=1995760]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 325ms |
total: | 452ms |
0 / 0 |