Alta disponibilidad de PostgreSQL con PgPool

PgPool-II es un middleware que se encuentra entre los servidores de PostgreSQL y un cliente de base de datos PostgreSQL.

Ofrece las siguientes características:

  • Agrupación de Conexiones (Connection Pooling)
  • Replicación (Replication)
  • Balanceo de Carga (Load Balance)
  • Limite de Conexiones excedidas (Limiting Exceeding Connections)
  • Consultas en Paralelo (Parallel Query)

Para nuestra demostración usamos 03 maquinas virtuales, donde cada servidor tenia instalado lo siguiente:

Server 01:
SO RedHat 7.2
IP 192.168.15.101
PgPool 3.6
Server 02:
SO RedHat 7.2
IP 192.168.15.102
PostgreSQL 9.5
Server 03:
SO RedHat 7.2
IP 192.168.15.103
PostgreSQL 9.5

Paso 1: Instalacion y configuracion PgPool

En el server 01 instalaremos y configuraremos PgPool.

[root@server01 ~]# systemctl enable pgpool-II-95

Generamos el archivo para manejo de autenticación MD5

Para comprobar la generación del archivo pool_passwd

Configuramos el acceso de usuarios a pgpool

Reiniciamos el servicio de pgpool

Paso 2: Instalamos PostgreSQL 9.5 en las maquinas virtuales (Server 02 y Server 03)

Configuramos los archivos postgresql.conf y pg_hba.conf

Reiniciamos el servicio de postgres

x = 2, 3
Paso 3: Pruebas

Validaremos el acceso, usando un cliente de PostgreSQL, PgAdmin por ejemplo, usaremos la IP del servidor PgPool 192.168.15.101, puerto 9999 y usuarios/contraseña definidos con pg_md5.

pgpool-ii-pgadmin



Share on FacebookTweet about this on TwitterShare on Google+

10 thoughts on “Alta disponibilidad de PostgreSQL con PgPool

  1. Gracias por el post, por favor necesito una última ayuda sobre qué contenido tendrían los archivos, puedes por favor compartir una sección de las líneas configuradas.
    /etc/pgpool-II-95/pgpool.conf —> es un nuevo archivo?
    /var/lib/pgsql/9.5/data/postgresql.conf
    /etc/pgpool-II-95/pcp.conf —> es un nuevo archivo?
    /etc/pgpool-II-95/pool_hba.conf —> es un nuevo archivo?
    /var/lib/pgsql/9.5/data/postgresql.conf
    /var/lib/pgsql/9.5/data/pg_hba.conf

    1. Hola Eder cuando instalas pgpool, en el directorio /etc/pgpool-II-95/ se crea el archivo pgpool.conf.sample, puedes crear el archivo pgpool.conf a partir del .sample, del mismo modo para el archivo pcp.conf y pool_hba.conf, las lineas configuradas están indicadas en el post.

  2. Hola, que tal, he intentado seguir tu manual y si he logrado entrar al servidor pgpool por el puerto 9999 y veo las bases de datos de uno de los host que son backend pero el otro si logro accesar de manera independiente pero no replica la base de datso que hago desde pgpool es decir creo una base de datos en el server que tiene pgpool y se replica en el host1 pero en el host2 no
    Que puedo estar haciendo mal
    Desde ya muchas gracias

  3. Cuando deseo hacer la conexion con pgpool para empezar las pruebas me muestra esto :
    psql: could not connect to server: Conexión rehusada
    Is the server running on host “localhost” (127.0.0.1) and accepting
    TCP/IP connections on port 9999?

    1. Hola Ive, puedes hacer los siguiente.
      – Revisar si tu servidor tiene resolucion IPv6, donde localhost toma por defecto la direccion ::1.
      – Cambiar en el archivo postgresql.conf el parametro listen_addresses a localhost o colocar * para escuchar todas las interfaces.
      – Revisar si no se esta detras de un firewall.

      Saludos,

  4. Hice lo que me dijo pero el error persiste :'(
    Server doesn’t listen
    The server doesn’t accept connections: the connection library reports
    could not connect to server: Conexión rehusada Is the server running on host “localhost” (127.0.0.1) and accepting TCP/IP connections on port 9999?

  5. Lo pude corregir pero quiero ingresar desde el pgAdmin pero no puedo me sale lo siguiente:
    An error has occurred:

    09:58:03: Error: Error connecting to the server: ERROR: unable to read message kind
    DETAIL: kind does not match between master(52) slot[1] (45)

Agregue un comentario

Su dirección de correo no se hará público. Los campos requeridos están marcados *