Generalnie nie instalowałbyś Pgpool na serwerach zaplecza. To, co widzisz na zdjęciu, jest najczęstszą konfiguracją. Pgpool to samodzielny serwer, który zasadniczo znajduje się przed bazami danych. Dwa serwery Postgres są często skonfigurowane do replikacji strumieniowej; z których jeden jest panem, a drugi niewolnikiem.
Pozwala to Pgpool na równoważenie wszystkich zapytań odczytu między dwiema (lub więcej) bazami danych. Wszelkie zapytania dotyczące jakichkolwiek zapisów będą kierowane do serwera głównego, który z kolei replikuje się do urządzenia podrzędnego.
Jak powiedział @Neil McGuigan , możesz także mieć wiele serwerów Pgpool, aby osiągnąć lepszą wysoką dostępność. Technicznie możesz zainstalować Pgpool na serwerach baz danych w tej konfiguracji, ale byłaby to zła praktyka. Uruchamianie wielu serwerów Pgpool jest znacznie bardziej złożoną konfiguracją. Jeśli po raz pierwszy korzystasz z Pgpool, zacznę od jednego serwera Pgpool, zanim zacznę dwa.
W obu konfiguracjach serwer aplikacji uważa, że łączy się tylko z jedną bazą danych Postgres.
O pgpool_regclass
, które naprawdę powinno być osobnym pytaniem, pochodzi z FAQ Pgpool :
Jeśli używasz PostgreSQL 8.0 lub nowszego, zdecydowanie zalecamy zainstalowanie funkcji pgpool_regclass na wszystkich PostgreSQL, do których dostęp ma pgpool-II, ponieważ jest ona używana wewnętrznie przez pgpool-II. Bez tego obsługa zduplikowanych nazw tabel w innym schemacie może powodować problemy (tabele tymczasowe nie stanowią problemu).
Jeśli używasz PostgreSQL 9.4.0 lub nowszej wersji i pgpool-II 3.3.4 lub nowszej wersji, 3.4.0 lub nowszej wersji, nie musisz instalować pgpool_regclass, ponieważ PostgreSQL 9.4 ma wbudowaną funkcję pgpool_regclass, taką jak funkcja „to_regclass”.
Jeśli potrzebujesz tego, to tylko część kodu SQL uruchomionego na głównym serwerze Postgres, aby dodać funkcję, której używa Pgpool.
W przypadku regclass musisz wykonać dodatkowy krok (myślałem o insert_lock). Jeśli kompilujesz ze źródła (generalnie większość dystrybucji ma naprawdę nieaktualne wersje Pgpool), będziesz musiał również skompilować bibliotekę Postgres.
Jeśli skompilowałeś ze źródła, będziesz musiał przejść do .../pgpool-II-3.X.X/src/sql/pgpool-regclass
folderu i zrobić ./configure; make
.
Skopiuj plik pgpool-regclass.so do katalogu rozszerzenia Postgres. Na moim serwerze Ubuntu 14.04 (tylko przy użyciu pakietu PostgreSQL 9.3 zainstalować), znajduje się na stronie: /usr/lib/postgresql/9.3/lib
. Pamiętaj, aby zrobić to dla wszystkich serwerów Postgres.
Po zakończeniu możesz uruchomić pgpool-regclass.sql
na systemie głównym. To po prostu mapuje pgpool_regclass
funkcję do biblioteki, którą skopiowałeś.