В чем разница между репликацией pgpool II и репликацией postgresql?

Я не совсем администратор базы данных, поэтому был бы признателен за простые для понимания ответы. Я должен обеспечить репликацию нашей БД, и pgpool кажется более удобным, потому что, если один экземпляр postgresql выходит из строя, клиентам не нужно ничего менять, чтобы продолжить работу, верно? Итак, в этом случае имеет смысл использовать pgpool, но часть настройки кажется (мне) намного более сложной и запутанной. Например, нужно ли мне настроить WAL на обоих серверах postgresql? Или это нужно только если я хочу настроить репликацию postgresql? Чем больше я пытаюсь получить ответ на эти вопросы, тем менее ясным становится. Может я разучился гуглить ...


person nique21    schedule 23.06.2014    source источник
comment
Я бы предпочел встроенную репликацию репликации pgPool. Очень хорошим инструментом для управления репликацией является repmgr.org Обычно люди затем используют виртуальный IP-адрес для указания на кластер, но вы также можете использовать pgPool в качестве прокси для реплицированного сервера   -  person a_horse_with_no_name    schedule 23.06.2014
comment
Если у вас нет опыта, придерживайтесь встроенной потоковой репликации с ошибкой архивирования WAL. repmgr помогает в этом. Используйте прокси, например PgBouncer (со сценарием, который изменяет целевой сервер при аварийном переключении), или что-то вроде HAProxy, если вы хотите сделать его прозрачным для клиента. Не пытайтесь полностью автоматизировать отработку отказа, используйте запускаемый вручную сценарий отработки отказа и периодически тестируйте.   -  person Craig Ringer    schedule 23.06.2014


Ответы (1)


Встроенная репликация, предоставляемая самим PostgreSQL, включает потоковую репликацию, горячий и горячий резерв. Эти параметры основаны на доставке журналов предзаписи (WAL) на все резервные серверы. Операторы записи (например, INSERT, UPDATE) будут передаваться мастеру, а мастер будет отправлять журналы (WAL) на резервные серверы (или другие мастера в случае репликации мастер-мастер).

pgpool, с другой стороны, представляет собой тип промежуточного программного обеспечения репликации на основе операторов (например, прокси-сервер базы данных). Все операторы фактически отправляются в pgpool, а pgpool перенаправляет все на все серверы для репликации.

Одним из больших недостатков pgpool является то, что у вас есть единственная точка отказа; если сервер, на котором запущен pgpool, выйдет из строя, весь ваш кластер выйдет из строя.

В документации PostgreSQL есть базовая информация о различных возможных типах репликации: https://www.postgresql.org/docs/current/different-replication-solutions.html

person Clyde D'Cruz    schedule 04.03.2015
comment
Не можете ли вы запустить несколько экземпляров pgpool2 со сторожевым таймером? Я думал, что так должно быть, чтобы избежать единой точки отказа. - person demisx; 03.02.2019