Generalmente non si installa Pgpool sui server back-end. Quello che vedi nella tua foto è la configurazione più comune. Pgpool è un server autonomo che si trova essenzialmente di fronte ai database. I due server Postgres sono spesso configurati con replica in streaming; con l'uno il padrone e l'altro lo schiavo.
Ciò consente a Pgpool di bilanciare il carico di tutte le query di lettura tra i due (o più) database. Qualsiasi query che implichi qualsiasi scrittura, verrà instradata al server principale che a sua volta si replica allo slave.
Come ha detto @Neil McGuigan , puoi anche avere più server Pgpool per ottenere una migliore disponibilità elevata. Tecnicamente potresti installare Pgpool sui server di database in questa configurazione, ma sarebbe una cattiva pratica. L'esecuzione di più server Pgpool è una configurazione molto più complessa. Se questa è la prima volta con Pgpool, inizierei con un server Pgpool prima di farne funzionare due.
In entrambe le configurazioni, il server delle applicazioni ritiene che si stia semplicemente connettendo a un singolo database Postgres.
A proposito pgpool_regclass
, che dovrebbe davvero essere una domanda separata, questo è dalle FAQ di Pgpool :
Se si utilizza PostgreSQL 8.0 o versioni successive, si consiglia vivamente di installare la funzione pgpool_regclass su tutti PostgreSQL a cui accede pgpool-II, poiché viene utilizzato internamente da pgpool-II. Senza questo, la gestione di nomi di tabella duplicati in diversi schemi potrebbe causare problemi (le tabelle temporanee non sono un problema).
Se stai usando PostgreSQL 9.4.0 o successivo e pgpool-II 3.3.4 o successivo, 3.4.0 o successivo, non è necessario installare pgpool_regclass poiché PostgreSQL 9.4 ha pgpool_regclass incorporato come la funzione "to_regclass".
Se ti serve, è solo un po 'di codice SQL eseguito sul tuo server master Postgres per aggiungere una funzione che Pgpool usa.
Con regclass, c'è un ulteriore passaggio che devi fare (stavo pensando a insert_lock). Se stai compilando dal sorgente (generalmente la maggior parte delle distribuzioni ha versioni davvero obsolete di Pgpool), dovrai compilare anche una libreria di Postgres.
Se hai compilato dal sorgente, dovrai andare nella .../pgpool-II-3.X.X/src/sql/pgpool-regclass
cartella e fare un ./configure; make
.
Copia il file pgpool-regclass.so nella directory delle estensioni di Postgres. Sul mio server Ubuntu 14.04 (solo utilizzando il pacchetto di Postgres 9.3 installazione), che si trova all'indirizzo: /usr/lib/postgresql/9.3/lib
. Ricordati di farlo per tutti i server Postgres.
Una volta completato, puoi eseguire pgpool-regclass.sql
sul master. Questo mappa semplicemente la pgpool_regclass
funzione sulla libreria su cui hai copiato.