Як правило, ви не встановлювали б Pgpool на задніх серверах. Те, що ви бачите на малюнку, є найпоширенішою конфігурацією. Pgpool - це окремий сервер, який по суті сидить перед базами даних. Два сервери Postgres часто налаштовуються за допомогою потокової реплікації; один з них господар, а другий раб.
Це дозволяє Pgpool завантажувати баланс всіх прочитаних запитів між двома (або більше) базами даних. Будь-які запити, що стосуються будь-яких записів, будуть перенаправлені на головний сервер, який, у свою чергу, копіюється на підлеглий.
Як сказав @Neil McGuigan , ви також можете мати кілька серверів Pgpool, щоб досягти кращої високої доступності. Технічно ви могли б встановити Pgpool на сервери баз даних у цій конфігурації, але це було б поганою практикою. Запуск декількох серверів Pgpool - це набагато складніша конфігурація. Якщо це ваш перший раз з Pgpool, я би почав з одного сервера Pgpool, перш ніж два працювати.
В будь-якій конфігурації ваш сервер додатків вважає, що це просто підключення до однієї бази даних Postgres.
Про те pgpool_regclass
, що насправді має бути окремим запитанням, це питання із поширених запитань про Pgpool :
Якщо ви використовуєте PostgreSQL 8.0 або пізнішої версії, настійно рекомендується встановити функцію pgpool_regclass на всі PostgreSQL, до яких можна отримати доступ з допомогою pgpool-II, оскільки її pgpool-II використовує внутрішньо. Без цього обробка дублікатів назв таблиць у різних схемах може спричинити проблеми (тимчасові таблиці не є проблемою).
Якщо ви використовуєте PostgreSQL 9.4.0 або новішої версії та pgpool-II 3.3.4 або пізнішої версії, 3.4.0 або пізнішої версії, вам не потрібно встановлювати pgpool_regclass, оскільки PostgreSQL 9.4 має вбудований pgpool_regclass на зразок функції "to_regclass".
Якщо вам це потрібно, для додавання функції Pgpool використовується лише деякий SQL-код, запущений на вашому головному сервері Postgres.
З regclass є додатковий крок, який ви повинні зробити (я думав про insert_lock). Якщо ви компілюєте з джерела (як правило, більшість дистрибутивів мають справді застарілі версії Pgpool), вам також доведеться скласти бібліотеку Postgres.
Якщо ви компілювали з джерела, вам доведеться зайти в .../pgpool-II-3.X.X/src/sql/pgpool-regclass
папку і зробити ./configure; make
.
Скопіюйте файл pgpool-regclass.so в каталог розширень Postgres. На моєму сервері Ubuntu 14.04 (тільки з допомогою пакета Postgres 9.3 установки), він розташований по адресою: /usr/lib/postgresql/9.3/lib
. Не забудьте зробити це для всіх серверів Postgres.
Після того, як це буде завершено, ви можете запустити pgpool-regclass.sql
майстра. Це просто відображає pgpool_regclass
функцію в бібліотеці, яку ви скопіювали.