SlideShare una empresa de Scribd logo
Introducción a pgpool-II
      Guía paso a paso
Agenda

• ¿Qué es pgpool-II?           • Otros detalles de
   – Arquitectura                configuración
• Instalación                  • Recomendaciones para
   – Paquetería                  el uso eficaz de pgpool
   – Compilación               • Ejercicio realizado
   – pgpool-II admin             durante el taller
• Configuración
   – Replicación
   – Maestro Esclavo
   – Stream
   – Otros usos de pgpool-II
¿Qué es pgpool-II?

pgpool-II es un middleware que trabaja entre
servidores y clientes de PostgreSQL. El mismo
provee las siguientes funcionalidades:

•   Agrupado de Conexiones (connection pooling)
•   Replicación
•   Balance de Cargas (load balance)
•   Limitación de Conexiones
•   Distribución de Consultas (parallel query)
¿Qué es pgpool-II?

Arquitectura
               Conexiones a usuarios



                    pgpool
¿Qué es pgpool-II?
                                           Los usuarios no
                                             se conectan
                                            directamente
                   Conexiones a usuarios     a los nodos



                        pgpool


Tenemos un grupo
  de servidores
   bajo el pool
¿Qué es pgpool-II?


            Conexiones a usuarios



                 pgpool             Podemos agregar
                                     un nodo nuevo
                                     sin detener el
                                         servicio
¿Qué es pgpool-II?

 Arquitectura
                   Conexiones a usuarios



Si falla un nodo
                        pgpool
no se detiene la
continuidad del
     servicio
¿Qué es pgpool-II?
                                  Podemos incluso tener
                                 redundancia de servicios
         Conexiones a usuarios    de pgpool y servicio de
                                    escucha entre ellos




    pgpool                                  pgpool
¿Qué es pgpool-II?
                             Si falla un pgpool tenemos
                              seguiremos conectados
     Conexiones a usuarios    mediante el otro pgpool




    pgpool                               pgpool
¿Qué es pgpool-II?

Arquitectura
               Conexiones a usuarios



                    pgpool
Instalación

Paquetería
Instrucción
$ aptitude -t squeeze-backports install pgpool2

A Favor:
Disponibilidad y funcionamiento

En Contra:
Versión disponible algo antigua
Instalación
Compilación (recomendado)
Pre-requisitos

$ aptitude install postgresql-9.0 postgresql-server-dev-9.0
$ aptitude install build-essential libssl-dev libreadline5-dev
$ aptitude install zlib-bin zlib1g-dev libpq-dev
$ aptitude install krb5-multidev comerr-dev libkrb5-dev

(pueden escribir todos los pre-requisitos en una sola línea)
Instalación
Compilación
Instrucción

$ wget http://pgfoundry.org/frs/download.php/3114/pgpool-II-3.1.tar.gz
$ tar -xzf pgpool-II-3.1.tar.gz
$ cd pgpool-II-3.1
$ ./configure –prefix=/opt/pgpool3/
$ make
$ make install
$ cd sql/pgpool-regclass
Instalación
Compilación
Instrucción

$ make
$ make install
$ psql -p #### -U postgres -h ###### -f pgpool-regclass.sql template1
$ psql -p $$$$ -U postgres -h $$$$$$ -f pgpool-regclass.sql template1
$ cd ../..

(sustituya los valores velados con #### y $$$$ por los
correspondientes a las instancias de postgres que utilizará como nodos
del cluster)
Instalación
Compilación
Instrucción

$ cd sql/pgpool-recovery
$ make
$ make install
$ psql -p #### -U postgres -h ###### -f pgpool-recovery.sql template1
$ psql -p $$$$ -U postgres -h $$$$$$ -f pgpool-recovery.sql template1
$ cd ..
$ psql -p #### -U postgres -h ###### -f insert_lock.sql template1
$ psql -p $$$$ -U postgres -h $$$$$$ -f insert_lock.sql template1
$ cd
Instalación
Compilación
Instrucción
• Configure los archivos en /opt/pgpool3/etc/
• Levante pgpool con el comando:
  $ /opt/pgpool3/bin/pgpool -n -f /opt/pgpool3/etc/pgpool.conf



Fin :-D
Instalación
Compilación
A Favor:
Versión Actualizada y últimos avances

En Contra:
Pre-requisitos y configuración más explícita.
Instalación

pgpool Admin
$ wget http://pgfoundry.org/frs/download.php/3149/pgpoolAdmin-
3.1.0.tar.gz
$ tar -xzf pgpoolAdmin-3.1.0.tar.gz
$ cd pgpoolAdmin-3.1.0/conf/
$ nano pgmgt.conf.php

Y configure los datos para acceder a los nodos y a pgpool.

Posteriormente proceda a instalar el pgpoolAdmin según sus
preferencias dentro del servidor web Apache.
Configuración

  • pgpool tiene 3 archivos de configuración
     – pgpool.conf
     – pcp.conf
     – pool_hba.conf
  • Dependiendo de cada escenario de HA
    deberemos configurar el archivo pgpool.conf
  • Para los configurar los accesos al pool se utiliza el
    archivo pool_hba.conf
  • Es altamente recomendable que todos los
    accesos a los backends del pool se restrinjan
    solamente a pgpool
Escenario 1 (Replicación)

• Para configurar pgpool para replicación
  debemos tener en cuenta inicialmente los
  siguientes valores para la configuración el
  archivo pgpool.conf

   replication_mode = on
   insert_lock = on
   black_function_list = 'nextval,setval'
   master_slave_mode = off
Escenario 2 (Maestro-Esclavo)

• Para configurar pgpool para Maestro-
  Esclavo debemos tener en cuenta
  inicialmente los siguientes valores para la
  configuración el archivo pgpool.conf

  replication_mode = off
  insert_lock = off
  black_function_list = 'currval,lastval,nextval,setval'
  master_slave_mode = on
Escenario 3 (Stream)

• Para configurar pgpool para Stream
  debemos tener en cuenta inicialmente los
  siguientes valores para la configuración el
  archivo pgpool.conf

  log_standby_delay = 'if_over_threshold'
  replication_mode = off
  insert_lock = off
  black_function_list = 'currval,lastval,nextval,setval'
  master_slave_mode = on
  sr_check_period = 10
  delay_threshold = 10000000
Otros Detalles de Configuración
• Se recomienda revisar los archivos de
  configuración de ejemplo que trae los
  fuentes de pgpool con un comparador como
  Meld o K3Diff
• pgpool tiene cantidad de variantes dentro de
  su configuración que se recomienda
  ampliamente que visite
  http://www.pgpool.net/pgpool-web/pgpool-
  II/doc/pgpool-en.html para más detalles.
Recomendaciones para el uso
eficaz de pgpool
• Diseñar su cluster
• Planificar su implantación
• Entonar cada nodo de PostgreSQL
• Balancear el cluster según las capacidades de
  cada nodo, a mayor potencia mayor peso.
• Bloquear accesos externos a los nodos del
  cluster
• Configurar los accesos en el archivo
  pgpool_hba.conf
Recomendaciones para el uso
eficaz de pgpool
• Diseñe e implemente su mecanismo de
  recuperación de eventualidades conforme a
  sus requerimientos de QA
• Ante las dudas o ambigüedades que se le
  presenten durante la instalación y
  configuración evite la tentación de adivinar,
  use la documentación, listas de correo y otros
  espacios de discusión
• Recuerde, la alta disponibilidad se mide por
  sus resultados en continuidad de servicio.
Ejercicio Realizado en el Taller
• Si va a repetir el ejercicio en entorno gráfico
  aségurese de configurar la herramienta
  phpPgAdmin con acceso a los nodos del
  cluster y al puerto de pgpool.
• En caso de hacer el ejemplo desde la
  interfaz de líneas de comandos abra tantas
  terminales como sesiones de psql vaya a
  tomar en consideración (1 para pgpool + 1
  por cada nodo del cluster)
Ejercicio Realizado en el Taller
• Nos conectamos a los backends (nodos) y a
  pgpool
• Creamos una base de datos nueva desde la
  conexión a pgpool
• Validamos que la misma se haya creado en
  los backends
Ejercicio Realizado en el Taller
• Nos conectamos a los backends (nodos) y a
   pgpool
$ psql -p #### -h #######
• Desde la conexión a pgpool creamos una base de
   datos nueva
postgres# CREATE DATABASE bd1 ENCODING
'utf8';
• Validamos que la misma se haya creado en los
   backends
postgres# l
Ejercicio Realizado en el Taller
• Nos conectamos a nuestra nueva base de
  datos
• Creamos una tabla en nuestra base de
  datos
• Revisamos el contenido de la tabla en
  pgpool y en cada uno de los backends
  (nodos)
• Hacemos la misma prueba con una tabla
  con fechas y horas.
Ejercicio Realizado en el Taller
# c bd1
# CREATE TABLE tabla1 (id serial, nombre
varchar(70), apellido varchar (50));
# INSERT INTO tabla1 (nombre,apellido)
VALUES ('Juan','Salao');
Ejecutar en cada uno de los nodos
# SELECT * FROM tabla1;
Ejercicio Realizado en el Taller
# CREATE TABLE prueba_tiempo (id int,
tiempo timestamp without time zone);
# INSERT INTO prueba_tiempo values
(1,now());
Ejecutar en cada uno de los nodos
# SELECT * FROM prueba_tiempo;
Ejercicio Realizado en el Taller
•   Creamos una función
•   Ejecutamos la función
•   Validamos el resultado
•   Ejecutamos la función con el “hint” para que
    pgpool no realice balance en la ejecución.
Ejercicio Realizado en el Taller
# CREATE or replace function insertar_fechas (i int)
returns void as $$
     declare
           x int;
     begin
           x:=0;
           for x in 1..i loop
               insert into prueba_tiempo values(x,now());
               RAISE NOTICE 'x es %', x;
           end loop;
     end
$$ language plpgsql;
Ejercicio Realizado en el Taller
# SELECT insertar_fechas(5);
Ver resultados en pgpool
Ver resultados en cada uno de los backends
(efectos: now() toma un valor durante la
transacción por ende se repite 5 veces la
misma hora, debido a que pgpool balanceó la
consulta los resultados fueron enviados a uno
solo de los backends)
Ejercicio Realizado en el Taller
Limpiamos el contenido de la tabla desde la
conexión a pgpool
# TRUNCATE prueba_tiempo;

Ejecutamos la función con el “hint” para
pgpool
# /* NO LOAD BALANCE */ SELECT
insertar_fechas(5);
Ejercicio Realizado en el Taller
Ejercicio que queda indicado:
Igual que el anterior pero utilice la función que
se le indica a continuación para la tabla:

# CREATE TABLE prueba_nombre (nombre
VARCHAR);
Ejercicio Realizado en el Taller
# CREATE or replace function insertar_nombre (i
varchar) returns void as
$$
declare
begin
insert into prueba_nombre values(i);
RAISE NOTICE 'se inserto el nombre %', i;
end
$$
language plpgsql;
FIN (por ahora)
Créditos

      @carlosgr_arahat
         @lennincaro
          @leninmhs
           @deglip
        @gregoria126
            @cnti

             Fuentes:
       documentación pgpool;
documentación proyecto postgresql-r;
             wikipedia

Más contenido relacionado

La actualidad más candente

ProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management Overview
René Cannaò
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQL
Joel Brewer
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQL
Jim Mlodgenski
 
Monitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaMonitoring using Prometheus and Grafana
Monitoring using Prometheus and Grafana
Arvind Kumar G.S
 
Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!
PGConf APAC
 
Intro to MySQL Master Slave Replication
Intro to MySQL Master Slave ReplicationIntro to MySQL Master Slave Replication
Intro to MySQL Master Slave Replication
satejsahu
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
Mike Dirolf
 
Postgresql tutorial
Postgresql tutorialPostgresql tutorial
Postgresql tutorial
Ashoka Vanjare
 
ProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQLProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQL
René Cannaò
 
OpenGurukul : Database : PostgreSQL
OpenGurukul : Database : PostgreSQLOpenGurukul : Database : PostgreSQL
OpenGurukul : Database : PostgreSQL
Open Gurukul
 
Logical Replication in PostgreSQL
Logical Replication in PostgreSQLLogical Replication in PostgreSQL
Logical Replication in PostgreSQL
EDB
 
Postgresql
PostgresqlPostgresql
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and FanoutOpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
Saju Madhavan
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load Balancing
NGINX, Inc.
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to RedisDvir Volk
 
NGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEA
NGINX, Inc.
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companion
Alexander Kukushkin
 
Parallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDBParallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDB
Mydbops
 
C* Summit 2013: The World's Next Top Data Model by Patrick McFadin
C* Summit 2013: The World's Next Top Data Model by Patrick McFadinC* Summit 2013: The World's Next Top Data Model by Patrick McFadin
C* Summit 2013: The World's Next Top Data Model by Patrick McFadin
DataStax Academy
 
AWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTAWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMT
I Goo Lee
 

La actualidad más candente (20)

ProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management Overview
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQL
 
Introduction to PostgreSQL
Introduction to PostgreSQLIntroduction to PostgreSQL
Introduction to PostgreSQL
 
Monitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaMonitoring using Prometheus and Grafana
Monitoring using Prometheus and Grafana
 
Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!Why we love pgpool-II and why we hate it!
Why we love pgpool-II and why we hate it!
 
Intro to MySQL Master Slave Replication
Intro to MySQL Master Slave ReplicationIntro to MySQL Master Slave Replication
Intro to MySQL Master Slave Replication
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Postgresql tutorial
Postgresql tutorialPostgresql tutorial
Postgresql tutorial
 
ProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQLProxySQL - High Performance and HA Proxy for MySQL
ProxySQL - High Performance and HA Proxy for MySQL
 
OpenGurukul : Database : PostgreSQL
OpenGurukul : Database : PostgreSQLOpenGurukul : Database : PostgreSQL
OpenGurukul : Database : PostgreSQL
 
Logical Replication in PostgreSQL
Logical Replication in PostgreSQLLogical Replication in PostgreSQL
Logical Replication in PostgreSQL
 
Postgresql
PostgresqlPostgresql
Postgresql
 
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and FanoutOpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
OpenStack Oslo Messaging RPC API Tutorial Demo Call, Cast and Fanout
 
NGINX: High Performance Load Balancing
NGINX: High Performance Load BalancingNGINX: High Performance Load Balancing
NGINX: High Performance Load Balancing
 
Introduction to Redis
Introduction to RedisIntroduction to Redis
Introduction to Redis
 
NGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEA
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companion
 
Parallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDBParallel Replication in MySQL and MariaDB
Parallel Replication in MySQL and MariaDB
 
C* Summit 2013: The World's Next Top Data Model by Patrick McFadin
C* Summit 2013: The World's Next Top Data Model by Patrick McFadinC* Summit 2013: The World's Next Top Data Model by Patrick McFadin
C* Summit 2013: The World's Next Top Data Model by Patrick McFadin
 
AWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMTAWS 환경에서 MySQL BMT
AWS 환경에서 MySQL BMT
 

Destacado

Alta Disponibilidad con PgPool-II
Alta Disponibilidad con PgPool-IIAlta Disponibilidad con PgPool-II
Alta Disponibilidad con PgPool-II
Lenin Hernandez
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQL
Carlos Gustavo Ruiz
 
Mapa Colaborativo con OpenStreetMap
Mapa Colaborativo con OpenStreetMapMapa Colaborativo con OpenStreetMap
Mapa Colaborativo con OpenStreetMap
Carlos Gustavo Ruiz
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
Volker Hirsch
 
Manual del cluster mysql
Manual del cluster mysqlManual del cluster mysql
Manual del cluster mysql
quiqueohio
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool II
Matheus Espanhol
 
Bases de Datos Libres desde 40.000 pies de altura
Bases de Datos Libres desde 40.000 pies de alturaBases de Datos Libres desde 40.000 pies de altura
Bases de Datos Libres desde 40.000 pies de altura
Carlos Gustavo Ruiz
 
Por qué hacemos persistencia de datos
Por qué hacemos persistencia de datosPor qué hacemos persistencia de datos
Por qué hacemos persistencia de datos
Carlos Gustavo Ruiz
 
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
Carlos Gustavo Ruiz
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMiguel Angel Nieto
 
Mejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de DatosMejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de Datos
Carlos Gustavo Ruiz
 
mini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQLmini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQL
Carlos Gustavo Ruiz
 
Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2
EQ SOFT EIRL
 
Requerimientos de PostgreSQL
Requerimientos de PostgreSQLRequerimientos de PostgreSQL
Requerimientos de PostgreSQL
Carlos Gustavo Ruiz
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
Natasha Murashev
 

Destacado (15)

Alta Disponibilidad con PgPool-II
Alta Disponibilidad con PgPool-IIAlta Disponibilidad con PgPool-II
Alta Disponibilidad con PgPool-II
 
Alta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQLAlta Disponibilidad con PostgreSQL
Alta Disponibilidad con PostgreSQL
 
Mapa Colaborativo con OpenStreetMap
Mapa Colaborativo con OpenStreetMapMapa Colaborativo con OpenStreetMap
Mapa Colaborativo con OpenStreetMap
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
 
Manual del cluster mysql
Manual del cluster mysqlManual del cluster mysql
Manual del cluster mysql
 
Escalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool IIEscalabilidade horizontal com PostgreSQL e Pgpool II
Escalabilidade horizontal com PostgreSQL e Pgpool II
 
Bases de Datos Libres desde 40.000 pies de altura
Bases de Datos Libres desde 40.000 pies de alturaBases de Datos Libres desde 40.000 pies de altura
Bases de Datos Libres desde 40.000 pies de altura
 
Por qué hacemos persistencia de datos
Por qué hacemos persistencia de datosPor qué hacemos persistencia de datos
Por qué hacemos persistencia de datos
 
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
GeoEtiquetas (2das Jornadas Latinoamérica y Caribe gvSIG)
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - Cluster
 
Mejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de DatosMejores prácticas para migración de Bases de Datos
Mejores prácticas para migración de Bases de Datos
 
mini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQLmini-taller de Base de Datos y PostgreSQL
mini-taller de Base de Datos y PostgreSQL
 
Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2Dba PostgreSQL desde básico a avanzado parte2
Dba PostgreSQL desde básico a avanzado parte2
 
Requerimientos de PostgreSQL
Requerimientos de PostgreSQLRequerimientos de PostgreSQL
Requerimientos de PostgreSQL
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

Similar a Guía de pgpool Paso a Paso

Automatización de tareas con Gulp
Automatización de tareas con GulpAutomatización de tareas con Gulp
Automatización de tareas con Gulp
Álvaro Navarro Iborra
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Restorando
 
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
David Tabernero Pérez
 
Cursillose ghost2010.open er-pcomosoftwaredegestióncontable
Cursillose ghost2010.open er-pcomosoftwaredegestióncontableCursillose ghost2010.open er-pcomosoftwaredegestióncontable
Cursillose ghost2010.open er-pcomosoftwaredegestióncontable
aldoalar
 
Documentacion postgresql
Documentacion postgresqlDocumentacion postgresql
Documentacion postgresqlCesar Martinez
 
Servidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidadServidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidad
InclamSoft
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
Jaime Perera Merino
 
Presentación IGALIA
Presentación IGALIAPresentación IGALIA
Presentación IGALIA
alberto_silva
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
Jorge Moratilla Porras
 
Cursillos e-ghost Septiembre 2010. Open ERP como software de gestión contable
Cursillos e-ghost Septiembre 2010. Open ERP como software de gestión contableCursillos e-ghost Septiembre 2010. Open ERP como software de gestión contable
Cursillos e-ghost Septiembre 2010. Open ERP como software de gestión contable
Alex Rayón Jerez
 
Open ERP e-Ghost-03-cursillo e-ghost 2010 - open erp como sw de gestion contable
Open ERP e-Ghost-03-cursillo e-ghost 2010 - open erp como sw de gestion contableOpen ERP e-Ghost-03-cursillo e-ghost 2010 - open erp como sw de gestion contable
Open ERP e-Ghost-03-cursillo e-ghost 2010 - open erp como sw de gestion contableOpen ERP Finanzas
 
Practica 2 FTP
Practica 2 FTPPractica 2 FTP
Practica 2 FTPTerrafx9
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
Luis Ruiz Pavón
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
Micael Gallego
 
Construccion de proyectos con gradle
Construccion de proyectos con gradleConstruccion de proyectos con gradle
Construccion de proyectos con gradle
David Gómez García
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
Andy Dawson
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
Paradigma Digital
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephpbetabeers
 

Similar a Guía de pgpool Paso a Paso (20)

Automatización de tareas con Gulp
Automatización de tareas con GulpAutomatización de tareas con Gulp
Automatización de tareas con Gulp
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
Servidor de mapas en HA con Jboss, Geoserver y PostGIS.
 
Cursillose ghost2010.open er-pcomosoftwaredegestióncontable
Cursillose ghost2010.open er-pcomosoftwaredegestióncontableCursillose ghost2010.open er-pcomosoftwaredegestióncontable
Cursillose ghost2010.open er-pcomosoftwaredegestióncontable
 
Documentacion postgresql
Documentacion postgresqlDocumentacion postgresql
Documentacion postgresql
 
Servidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidadServidores de mapas en alta disponibilidad
Servidores de mapas en alta disponibilidad
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
 
Presentación IGALIA
Presentación IGALIAPresentación IGALIA
Presentación IGALIA
 
ATICA DevOps
ATICA DevOpsATICA DevOps
ATICA DevOps
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Cursillos e-ghost Septiembre 2010. Open ERP como software de gestión contable
Cursillos e-ghost Septiembre 2010. Open ERP como software de gestión contableCursillos e-ghost Septiembre 2010. Open ERP como software de gestión contable
Cursillos e-ghost Septiembre 2010. Open ERP como software de gestión contable
 
Open ERP e-Ghost-03-cursillo e-ghost 2010 - open erp como sw de gestion contable
Open ERP e-Ghost-03-cursillo e-ghost 2010 - open erp como sw de gestion contableOpen ERP e-Ghost-03-cursillo e-ghost 2010 - open erp como sw de gestion contable
Open ERP e-Ghost-03-cursillo e-ghost 2010 - open erp como sw de gestion contable
 
Postgres
PostgresPostgres
Postgres
 
Practica 2 FTP
Practica 2 FTPPractica 2 FTP
Practica 2 FTP
 
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7ReConnect 2015  - ASP.NET 5: MVC 6 y EF 7
ReConnect 2015 - ASP.NET 5: MVC 6 y EF 7
 
Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019Dev Tools para Kubernetes - Codemotion 2019
Dev Tools para Kubernetes - Codemotion 2019
 
Construccion de proyectos con gradle
Construccion de proyectos con gradleConstruccion de proyectos con gradle
Construccion de proyectos con gradle
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Orquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace NetflixOrquestando microservicios como lo hace Netflix
Orquestando microservicios como lo hace Netflix
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 

Último

TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
aljitagallego
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
AMADO SALVADOR
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
SofiaCollazos
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
Miguel Rebollo
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Festibity
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
bendezuperezjimena
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
AMADO SALVADOR
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
alejandromanuelve
 

Último (20)

TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
actividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañerosactividad 2 tecnologia (3).pdf junto con mis compañeros
actividad 2 tecnologia (3).pdf junto con mis compañeros
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
Trabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De ProgramaciónTrabajo tecnología sobre Conceptos Básicos De Programación
Trabajo tecnología sobre Conceptos Básicos De Programación
 
IA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticulturaIA en entornos rurales aplicada a la viticultura
IA en entornos rurales aplicada a la viticultura
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdfInformació Projecte Iniciativa TIC SOPRA STERIA.pdf
Informació Projecte Iniciativa TIC SOPRA STERIA.pdf
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
TODO SOBRE LA INFORMÁTICA, HISTORIA, ¿QUE ES?, IMPORTANCIA Y CARACTERISTICAS....
 
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial ValenciaCatalogo general Ariston Amado Salvador distribuidor oficial Valencia
Catalogo general Ariston Amado Salvador distribuidor oficial Valencia
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
Informe DATA & IA 2024 Primera encuesta sobre el uso de IA en las empresas pe...
 

Guía de pgpool Paso a Paso

  • 1. Introducción a pgpool-II Guía paso a paso
  • 2. Agenda • ¿Qué es pgpool-II? • Otros detalles de – Arquitectura configuración • Instalación • Recomendaciones para – Paquetería el uso eficaz de pgpool – Compilación • Ejercicio realizado – pgpool-II admin durante el taller • Configuración – Replicación – Maestro Esclavo – Stream – Otros usos de pgpool-II
  • 3. ¿Qué es pgpool-II? pgpool-II es un middleware que trabaja entre servidores y clientes de PostgreSQL. El mismo provee las siguientes funcionalidades: • Agrupado de Conexiones (connection pooling) • Replicación • Balance de Cargas (load balance) • Limitación de Conexiones • Distribución de Consultas (parallel query)
  • 4. ¿Qué es pgpool-II? Arquitectura Conexiones a usuarios pgpool
  • 5. ¿Qué es pgpool-II? Los usuarios no se conectan directamente Conexiones a usuarios a los nodos pgpool Tenemos un grupo de servidores bajo el pool
  • 6. ¿Qué es pgpool-II? Conexiones a usuarios pgpool Podemos agregar un nodo nuevo sin detener el servicio
  • 7. ¿Qué es pgpool-II? Arquitectura Conexiones a usuarios Si falla un nodo pgpool no se detiene la continuidad del servicio
  • 8. ¿Qué es pgpool-II? Podemos incluso tener redundancia de servicios Conexiones a usuarios de pgpool y servicio de escucha entre ellos pgpool pgpool
  • 9. ¿Qué es pgpool-II? Si falla un pgpool tenemos seguiremos conectados Conexiones a usuarios mediante el otro pgpool pgpool pgpool
  • 10. ¿Qué es pgpool-II? Arquitectura Conexiones a usuarios pgpool
  • 11. Instalación Paquetería Instrucción $ aptitude -t squeeze-backports install pgpool2 A Favor: Disponibilidad y funcionamiento En Contra: Versión disponible algo antigua
  • 12. Instalación Compilación (recomendado) Pre-requisitos $ aptitude install postgresql-9.0 postgresql-server-dev-9.0 $ aptitude install build-essential libssl-dev libreadline5-dev $ aptitude install zlib-bin zlib1g-dev libpq-dev $ aptitude install krb5-multidev comerr-dev libkrb5-dev (pueden escribir todos los pre-requisitos en una sola línea)
  • 13. Instalación Compilación Instrucción $ wget http://pgfoundry.org/frs/download.php/3114/pgpool-II-3.1.tar.gz $ tar -xzf pgpool-II-3.1.tar.gz $ cd pgpool-II-3.1 $ ./configure –prefix=/opt/pgpool3/ $ make $ make install $ cd sql/pgpool-regclass
  • 14. Instalación Compilación Instrucción $ make $ make install $ psql -p #### -U postgres -h ###### -f pgpool-regclass.sql template1 $ psql -p $$$$ -U postgres -h $$$$$$ -f pgpool-regclass.sql template1 $ cd ../.. (sustituya los valores velados con #### y $$$$ por los correspondientes a las instancias de postgres que utilizará como nodos del cluster)
  • 15. Instalación Compilación Instrucción $ cd sql/pgpool-recovery $ make $ make install $ psql -p #### -U postgres -h ###### -f pgpool-recovery.sql template1 $ psql -p $$$$ -U postgres -h $$$$$$ -f pgpool-recovery.sql template1 $ cd .. $ psql -p #### -U postgres -h ###### -f insert_lock.sql template1 $ psql -p $$$$ -U postgres -h $$$$$$ -f insert_lock.sql template1 $ cd
  • 16. Instalación Compilación Instrucción • Configure los archivos en /opt/pgpool3/etc/ • Levante pgpool con el comando: $ /opt/pgpool3/bin/pgpool -n -f /opt/pgpool3/etc/pgpool.conf Fin :-D
  • 17. Instalación Compilación A Favor: Versión Actualizada y últimos avances En Contra: Pre-requisitos y configuración más explícita.
  • 18. Instalación pgpool Admin $ wget http://pgfoundry.org/frs/download.php/3149/pgpoolAdmin- 3.1.0.tar.gz $ tar -xzf pgpoolAdmin-3.1.0.tar.gz $ cd pgpoolAdmin-3.1.0/conf/ $ nano pgmgt.conf.php Y configure los datos para acceder a los nodos y a pgpool. Posteriormente proceda a instalar el pgpoolAdmin según sus preferencias dentro del servidor web Apache.
  • 19. Configuración • pgpool tiene 3 archivos de configuración – pgpool.conf – pcp.conf – pool_hba.conf • Dependiendo de cada escenario de HA deberemos configurar el archivo pgpool.conf • Para los configurar los accesos al pool se utiliza el archivo pool_hba.conf • Es altamente recomendable que todos los accesos a los backends del pool se restrinjan solamente a pgpool
  • 20. Escenario 1 (Replicación) • Para configurar pgpool para replicación debemos tener en cuenta inicialmente los siguientes valores para la configuración el archivo pgpool.conf replication_mode = on insert_lock = on black_function_list = 'nextval,setval' master_slave_mode = off
  • 21. Escenario 2 (Maestro-Esclavo) • Para configurar pgpool para Maestro- Esclavo debemos tener en cuenta inicialmente los siguientes valores para la configuración el archivo pgpool.conf replication_mode = off insert_lock = off black_function_list = 'currval,lastval,nextval,setval' master_slave_mode = on
  • 22. Escenario 3 (Stream) • Para configurar pgpool para Stream debemos tener en cuenta inicialmente los siguientes valores para la configuración el archivo pgpool.conf log_standby_delay = 'if_over_threshold' replication_mode = off insert_lock = off black_function_list = 'currval,lastval,nextval,setval' master_slave_mode = on sr_check_period = 10 delay_threshold = 10000000
  • 23. Otros Detalles de Configuración • Se recomienda revisar los archivos de configuración de ejemplo que trae los fuentes de pgpool con un comparador como Meld o K3Diff • pgpool tiene cantidad de variantes dentro de su configuración que se recomienda ampliamente que visite http://www.pgpool.net/pgpool-web/pgpool- II/doc/pgpool-en.html para más detalles.
  • 24. Recomendaciones para el uso eficaz de pgpool • Diseñar su cluster • Planificar su implantación • Entonar cada nodo de PostgreSQL • Balancear el cluster según las capacidades de cada nodo, a mayor potencia mayor peso. • Bloquear accesos externos a los nodos del cluster • Configurar los accesos en el archivo pgpool_hba.conf
  • 25. Recomendaciones para el uso eficaz de pgpool • Diseñe e implemente su mecanismo de recuperación de eventualidades conforme a sus requerimientos de QA • Ante las dudas o ambigüedades que se le presenten durante la instalación y configuración evite la tentación de adivinar, use la documentación, listas de correo y otros espacios de discusión • Recuerde, la alta disponibilidad se mide por sus resultados en continuidad de servicio.
  • 26. Ejercicio Realizado en el Taller • Si va a repetir el ejercicio en entorno gráfico aségurese de configurar la herramienta phpPgAdmin con acceso a los nodos del cluster y al puerto de pgpool. • En caso de hacer el ejemplo desde la interfaz de líneas de comandos abra tantas terminales como sesiones de psql vaya a tomar en consideración (1 para pgpool + 1 por cada nodo del cluster)
  • 27. Ejercicio Realizado en el Taller • Nos conectamos a los backends (nodos) y a pgpool • Creamos una base de datos nueva desde la conexión a pgpool • Validamos que la misma se haya creado en los backends
  • 28. Ejercicio Realizado en el Taller • Nos conectamos a los backends (nodos) y a pgpool $ psql -p #### -h ####### • Desde la conexión a pgpool creamos una base de datos nueva postgres# CREATE DATABASE bd1 ENCODING 'utf8'; • Validamos que la misma se haya creado en los backends postgres# l
  • 29. Ejercicio Realizado en el Taller • Nos conectamos a nuestra nueva base de datos • Creamos una tabla en nuestra base de datos • Revisamos el contenido de la tabla en pgpool y en cada uno de los backends (nodos) • Hacemos la misma prueba con una tabla con fechas y horas.
  • 30. Ejercicio Realizado en el Taller # c bd1 # CREATE TABLE tabla1 (id serial, nombre varchar(70), apellido varchar (50)); # INSERT INTO tabla1 (nombre,apellido) VALUES ('Juan','Salao'); Ejecutar en cada uno de los nodos # SELECT * FROM tabla1;
  • 31. Ejercicio Realizado en el Taller # CREATE TABLE prueba_tiempo (id int, tiempo timestamp without time zone); # INSERT INTO prueba_tiempo values (1,now()); Ejecutar en cada uno de los nodos # SELECT * FROM prueba_tiempo;
  • 32. Ejercicio Realizado en el Taller • Creamos una función • Ejecutamos la función • Validamos el resultado • Ejecutamos la función con el “hint” para que pgpool no realice balance en la ejecución.
  • 33. Ejercicio Realizado en el Taller # CREATE or replace function insertar_fechas (i int) returns void as $$ declare x int; begin x:=0; for x in 1..i loop insert into prueba_tiempo values(x,now()); RAISE NOTICE 'x es %', x;   end loop; end $$ language plpgsql;
  • 34. Ejercicio Realizado en el Taller # SELECT insertar_fechas(5); Ver resultados en pgpool Ver resultados en cada uno de los backends (efectos: now() toma un valor durante la transacción por ende se repite 5 veces la misma hora, debido a que pgpool balanceó la consulta los resultados fueron enviados a uno solo de los backends)
  • 35. Ejercicio Realizado en el Taller Limpiamos el contenido de la tabla desde la conexión a pgpool # TRUNCATE prueba_tiempo; Ejecutamos la función con el “hint” para pgpool # /* NO LOAD BALANCE */ SELECT insertar_fechas(5);
  • 36. Ejercicio Realizado en el Taller Ejercicio que queda indicado: Igual que el anterior pero utilice la función que se le indica a continuación para la tabla: # CREATE TABLE prueba_nombre (nombre VARCHAR);
  • 37. Ejercicio Realizado en el Taller # CREATE or replace function insertar_nombre (i varchar) returns void as $$ declare begin insert into prueba_nombre values(i); RAISE NOTICE 'se inserto el nombre %', i; end $$ language plpgsql;
  • 39. Créditos @carlosgr_arahat @lennincaro @leninmhs @deglip @gregoria126 @cnti Fuentes: documentación pgpool; documentación proyecto postgresql-r; wikipedia