En general, no instalaría Pgpool en los servidores de fondo. Lo que ves en tu imagen es la configuración más común. Pgpool es un servidor independiente que esencialmente se encuentra frente a las bases de datos. Los dos servidores Postgres a menudo se configuran con replicación de transmisión; siendo uno el amo y el otro el esclavo.
Esto permite que Pgpool equilibre la carga de todas las consultas de lectura entre las dos (o más) bases de datos. Cualquier consulta que involucre escrituras se enrutará al servidor maestro, que a su vez se replica al esclavo.
Como dijo @Neil McGuigan , también puede tener múltiples servidores Pgpool para lograr una mejor disponibilidad. Técnicamente, podría instalar Pgpool en los servidores de bases de datos en esta configuración, pero esto sería una mala práctica. Ejecutar múltiples servidores Pgpool es una configuración mucho más compleja. Si esta es su primera vez con Pgpool, comenzaría con un servidor Pgpool antes de que funcionen dos.
En cualquiera de las configuraciones, su servidor de aplicaciones cree que solo se está conectando a una única base de datos Postgres.
Acerca de pgpool_regclass
, que realmente debería ser una pregunta separada, esto es de las preguntas frecuentes de Pgpool :
Si está utilizando PostgreSQL 8.0 o posterior, se recomienda encarecidamente instalar la función pgpool_regclass en todos los PostgreSQL a los que accede pgpool-II, ya que pgpool-II lo utiliza internamente. Sin esto, el manejo de nombres de tablas duplicados en diferentes esquemas puede causar problemas (las tablas temporales no son un problema).
Si está utilizando PostgreSQL 9.4.0 o posterior y pgpool-II 3.3.4 o posterior, 3.4.0 o posterior, no necesita instalar pgpool_regclass ya que PostgreSQL 9.4 tiene incorporado pgpool_regclass como la función "to_regclass".
Si necesita esto, es solo un código SQL ejecutado en su servidor maestro de Postgres para agregar una función que Pgpool utiliza.
Con regclass, hay un paso adicional que debes hacer (estaba pensando en insert_lock). Si está compilando desde la fuente (generalmente la mayoría de las distribuciones tienen versiones realmente desactualizadas de Pgpool), también deberá compilar una biblioteca de Postgres.
Si compiló desde la fuente, tendrá que ir a la .../pgpool-II-3.X.X/src/sql/pgpool-regclass
carpeta y hacer un ./configure; make
.
Copie el archivo pgpool-regclass.so en el directorio de extensión de Postgres. En mi servidor de Ubuntu 14.04 (solo usando el paquete Postgres 9.3 instalación), se encuentra en: /usr/lib/postgresql/9.3/lib
. Recuerde hacer esto para todos los servidores de Postgres.
Una vez que se haya completado, puede ejecutar pgpool-regclass.sql
en el maestro. Esto solo asigna la pgpool_regclass
función a la biblioteca que copió.