SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Destripando el sistema
de replicación de
PostgreSQL 9.0



                        Ernesto Quiñones A. - CTO
                                          Eq Soft Consultoría y Soporte E.I.R.L.
             Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                           Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                           E-mail : informes@eqsoft.net http://www.eqsoft.net
¡Advertencia!
Esta charla es para explicar como funciona por dentro el
sistema de replicación de PostgreSQL 9.0 no para
enseñar a instalar un sistema de replicación.

¿Porque? Lo otro lo pueden aprender leyendo el manual.



                                                   Eq Soft Consultoría y Soporte E.I.R.L.
                      Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                    Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                    E-mail : informes@eqsoft.net http://www.eqsoft.net
¿Que es un sistema de replicación de base de datos?


                     En simple: es
                     mantener una 2da
                     base de datos
                     alterna con la data
                     idéntica a la
                     principal.
                                                  Eq Soft Consultoría y Soporte E.I.R.L.
                     Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                   Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                   E-mail : informes@eqsoft.net http://www.eqsoft.net
¿Porque debería tener un sistema de replicación para mi
dbms?

● Para tener un sistema tolerable a fallas.
● Para balancear la carga de trabajo en diversos servidores.

● Para aplicaciones de alto consumo en consultas (B.I.)

● Para tener un ambiente de pruebas o desarrollo lo más parecido al

  ambiente de producción.
● Muchas otras que se puedan imaginar …..




                                                        Eq Soft Consultoría y Soporte E.I.R.L.
                           Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                         Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                         E-mail : informes@eqsoft.net http://www.eqsoft.net
OK ¿Por donde empezamos?




                                               Eq Soft Consultoría y Soporte E.I.R.L.
                  Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                E-mail : informes@eqsoft.net http://www.eqsoft.net
Características de la replicación interna de PgSQL 9.0

Es Streaming Replication Hot Standby
● No requiere hardware especial
● No requiere de servidores/servicios especiales

● No sobrecarga el servidor principal

● No requiere de un sistema de resolución de conflictos (al menos no

  adicionales al que ya implementa la base de datos)
● Si se cayera la replicación al menos tendré acceso de lectura



●   Point-In-Time Recovery, es decir permite recuperar la data al tiempo
    pasado más cercano donde esta se encuentre bien.

●   Usa WAL como método de cache, esta técnica permite asegurar que solo
    las operaciones bien realizadas actualicen la data (atomicidad y

    durabilidad).

                                                              Eq Soft Consultoría y Soporte E.I.R.L.
                                 Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                               Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                               E-mail : informes@eqsoft.net http://www.eqsoft.net
¿Qué no hay?


● Múltiples servidores maestros/principales
● Asegurar que ante una falla el servidor principal nunca va a perder la data

● Controlar la replicación a nivel de tablas




                                                           Eq Soft Consultoría y Soporte E.I.R.L.
                              Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                            Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                            E-mail : informes@eqsoft.net http://www.eqsoft.net
¿Como funciona?

En simple es:

         Servidor primario                        Servidor secundario



                              Conexión de
                              red
                pg_xlog/                                   pg_xlog/

                 WAL          Traspasando                   WAL
                              datos

                 Data                                       Data


                                                          Eq Soft Consultoría y Soporte E.I.R.L.
                             Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                           Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                           E-mail : informes@eqsoft.net http://www.eqsoft.net
El WAL es...

Básicamente es un buffer donde se llevan a cabo las
operaciones a la data y una vez terminada se pasan al
almacenamiento de datos principal, si algo pasara
entonces el área de datos permanecerá intacto solo se
perderá lo que esta en el WAL.

WAL genera segmentos de data de 16mb (configurable)
en archivos físicos que tiene páginas de datos de 8kb
(configurable).


                                                   Eq Soft Consultoría y Soporte E.I.R.L.
                      Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                    Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                    E-mail : informes@eqsoft.net http://www.eqsoft.net
El WAL es...
typedef struct XLogRecord
{
     pg_crc32       xl_crc;       /*   CRC for this record */
     XLogRecPtr     xl_prev;      /*   ptr to previous record in log */
     TransactionId xl_xid;        /*   xact id */
     uint32         xl_tot_len;   /*   total len of entire record */
     uint32         xl_len;       /*   total len of rmgr data */
     uint8          xl_info;      /*   flag bits, see below */
     RmgrId         xl_rmid;      /*   resource manager for this record */
} XLogRecord;

typedef struct XLogRecData
{
     char           *data;        /*   start of rmgr data to include */
     uint32         len;          /*   length of rmgr data to include */
     Buffer         buffer;       /*   buffer associated with data, if any */
     bool           buffer_std;   /*   buffer has standard pd_lower/pd_upper */
     struct XLogRecData *next;    /*   next struct in chain, or NULL */
} XLogRecData;

typedef struct CheckpointStatsData
{
     TimestampTz ckpt_start_t;         /*   start of checkpoint */
     TimestampTz ckpt_write_t;         /*   start of flushing buffers */
     TimestampTz ckpt_sync_t;          /*   start of fsyncs */
     TimestampTz ckpt_sync_end_t;      /*   end of fsyncs */
     TimestampTz ckpt_end_t;           /*   end of checkpoint */
     int         ckpt_bufs_written;    /*   # of buffers written */
     int         ckpt_segs_added;      /*   # of new xlog segments created */
     int         ckpt_segs_removed;    /*   # of xlog segments deleted */
     int         ckpt_segs_recycled;   /*   # of xlog segments recycled */
} CheckpointStatsData;

                                                                         Eq Soft Consultoría y Soporte E.I.R.L.
                                            Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                                          Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                                          E-mail : informes@eqsoft.net http://www.eqsoft.net
El WAL es...
Una ventaja del WAL es que puede residir en cualquier directorio y
podemos hacer un enlace simbólico al directorio donde debería
residir.

En caso de que suceda un problema el WAL puede retroceder hacia
el pasado hasta el último momento en que todo estuvo ok.


                                                       Eq Soft Consultoría y Soporte E.I.R.L.
                          Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                        Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                        E-mail : informes@eqsoft.net http://www.eqsoft.net
El WAL es...

WAL maneja varios niveles para especificar que tanto deseo
almacenar en este buffer en el nivel mínimo solo contiene
información para recuperar una db en caso de paradas abruptas del
servicio.

Para realizar la replicación requerimos aumentar el nivel de WAL
para reconstruir toda la data de una db.


                                                       Eq Soft Consultoría y Soporte E.I.R.L.
                          Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                        Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                        E-mail : informes@eqsoft.net http://www.eqsoft.net
El primer paso: indicar donde “copiaremos el WAL”


En los archivos de configuración debemos indicar donde vamos a duplicar
nuestros WAL files tomaremos en cuenta que debe existir una
comunicación en ese file system entre los 2 servidores.

Se puede usar NFS para ello, quizás (aún no lo he probado) podría usarse
SSHFS como una forma más sencilla.

Para asegurar que se copiarán todas las transacciones haremos que se
mantenga un buen numero de segmentos WAL historicamente, pasar data
por red tiene una demora importante que debemos tener en cuenta.


                                                          Eq Soft Consultoría y Soporte E.I.R.L.
                             Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                           Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                           E-mail : informes@eqsoft.net http://www.eqsoft.net
El primer paso: indicar donde “copiaremos el WAL”

   Servidor                                 Servidor
   Principal                                Replica

                                                NFS
      NFS                                       Client
      ó                                         ó
                        Conexión
      SSH               LAN
                                                SSHFS
      Server                                    client


  NFS:                                      SSHFS:
  * Más complicado de configurar            * Más simple de configurar
  * Más rápido porque funciona a nivel      * Más lento que NFS, 1 a 2, porque
  de protocolo más bajo y coordinado        funciona en capa más alta de tcp/ip
  con el kernel.                            y básicamente es un SCP.
  * ¿Menos seguro en la transmisión?        * ¿Más seguro en la transmisión?

                                                           Eq Soft Consultoría y Soporte E.I.R.L.
                              Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                            Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                            E-mail : informes@eqsoft.net http://www.eqsoft.net
El segundo paso: reconstruir la imagen inicial de la db en
el servidor de destino.

                                             La Herramienta más popular para
                                             esto es Rsync.

                                             Rsync trabaja en base a deltas
                                             binarios para determinar los cambios
                                             bit a bit entre 2 árboles de directorio
                                             y los files que este contiene.

                                             Se saca un checksum (md5) de los
                                             contenidos para verificar contra el
                                             espejo que es lo que ha cambiado.

En los 2 anteriores pasos mencionados hasta el momento existen algunas
ventajas, estamos limitados a replicar únicamente a un solo servidor, podemos
realizar esto en varios y en cascada, otra es que podemos hacer esto casi en
caliente.

                                                            Eq Soft Consultoría y Soporte E.I.R.L.
                               Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                             Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                             E-mail : informes@eqsoft.net http://www.eqsoft.net
Tercer paso: configurar el servidor réplica solo como
servidor de consulta.

Dado que las transacciones se manejarán en el servidor principal
en las réplicas no podemos más que procesar consultas, ambos
servicios no pueden escribir en la zona del WAL.

Esto es un servidor HOTSTANDBY

                                                       Eq Soft Consultoría y Soporte E.I.R.L.
                          Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                        Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                        E-mail : informes@eqsoft.net http://www.eqsoft.net
HOTSTANDBY

Hotstandby permite a PostgreSQL correr querys solo de consulta, de
forma generica el estado Hotstandby permite recuperarse hasta un estado
consistente a una db mientras esta sigue atendiendo conexiones.

En la replica podemos ejecutar estos tipos de queries:

  Query access - SELECT, COPY TO
  Cursor commands - DECLARE, FETCH, CLOSE
  Parameters - SHOW, SET, RESET
  Transaction management commands
  BEGIN, END, ABORT, START TRANSACTION
  SAVEPOINT, RELEASE, ROLLBACK TO SAVEPOINT
  EXCEPTION blocks and other internal subtransactions
  LOCK TABLE, though only when explicitly in one of these modes:
        ACCESS SHARE, ROW SHARE or ROW EXCLUSIVE.
  Plans and resources - PREPARE, EXECUTE, DEALLOCATE, DISCARD
  Plugins and extensions - LOAD
                                                          Eq Soft Consultoría y Soporte E.I.R.L.
                             Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                           Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                           E-mail : informes@eqsoft.net http://www.eqsoft.net
HOTSTANDBY

Uno podría iniciar una transacción pero el sistema nunca le asignará un
espacio en el WAL por lo tanto nunca se grabará nada

Los principales problemas que se pueden presentar son:
● Locks de Accesos Exclusivos en el servidor principal que bloquean tablas en la
  réplica.
● Borrar tablespace en el servidor principal que crean conflictos con queries que

  los usan en la réplica.
● Borrar una base de datos en el servidor principal y que en la replica existan

  conexiones a esta db.
● Correr un full vacuum mientras el WAL de la réplica aún tiene visible la fila.

● El mismo caso del anterior pero un query tiene acceso a las páginas a borrar.




                                                              Eq Soft Consultoría y Soporte E.I.R.L.
                                 Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                               Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                               E-mail : informes@eqsoft.net http://www.eqsoft.net
HOTSTANDBY
En la mayoría de los casos el problema genera un delay, este puede ser demasiado
grande debido al control de concurrencias por ejemplo:

* servidor réplica lanza un query con lock exclusivo sobre una tabla
  enorme que toma 15”
* llega un drop table del servidor primario
* servidor réplica sigue procesando el query
* servidor primario sigue trabajando normalmente
* servidor replica tiene paradas las transacciones replicadas del servidor
  primario hasta que no acabe el query en la réplica
* termina el query en el servidor réplica y por fin aplica los otros cambios
  encolados
* tenemos 15” minutos de retraso … si es que no pasa de nuevo

Para ello es deseable configurar el tiempo de espera para procesar el WAL
y no tener este tipo de problemas, los queries que sobrepasen este tiempo
serán abortados.
                                                            Eq Soft Consultoría y Soporte E.I.R.L.
                               Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                             Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                             E-mail : informes@eqsoft.net http://www.eqsoft.net
¿Qué falta?

Pues nada, iniciar el servidor réplica, durante este inicio y
mientras la db se “sincroniza” con el servidor principal las
conexiones de clientes no estarán disponibles hasta que se
llegue a un punto en el cual la información ya es consistente.

Luego de este paso todo esta listo, tenemos un servidor de
réplica corriendo :-)




                                                      Eq Soft Consultoría y Soporte E.I.R.L.
                         Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                       Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                       E-mail : informes@eqsoft.net http://www.eqsoft.net
Toda la documentación de esta exposición la pueden
                 encontrar aquí :

            http://tinyurl.com/3wuugpq

                   O en simple:

            http//www.eqsoft.net/wiki
          (sección Nuestras Ponencias)




                                                 Eq Soft Consultoría y Soporte E.I.R.L.
                    Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
                                  Teléfonos: (51-1) 5645744 – 997244926 – 997003957
                                  E-mail : informes@eqsoft.net http://www.eqsoft.net
Gracias por su tiempo.




                             Eq Soft Consultoría y Soporte E.I.R.L.
Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú
              Teléfonos: (51-1) 5645744 – 997244926 – 997003957
              E-mail : informes@eqsoft.net http://www.eqsoft.net

Weitere ähnliche Inhalte

Andere mochten auch

Programación en Pl/Python
Programación en Pl/PythonProgramación en Pl/Python
Programación en Pl/Python
EQ SOFT EIRL
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
brobelo
 

Andere mochten auch (18)

Que es linux y que es Software Libre
Que es linux y que es Software LibreQue es linux y que es Software Libre
Que es linux y que es Software Libre
 
Iniciativa cluster lima tech
Iniciativa cluster lima techIniciativa cluster lima tech
Iniciativa cluster lima tech
 
Social Media Marketing
Social Media MarketingSocial Media Marketing
Social Media Marketing
 
Big Data en Beneficio del Ciudadano
Big Data en Beneficio del CiudadanoBig Data en Beneficio del Ciudadano
Big Data en Beneficio del Ciudadano
 
Cluster lima tech
Cluster lima techCluster lima tech
Cluster lima tech
 
Cuellos botella en PostgreSQL
Cuellos botella en PostgreSQLCuellos botella en PostgreSQL
Cuellos botella en PostgreSQL
 
Emite - Facturación Electrónica
Emite - Facturación ElectrónicaEmite - Facturación Electrónica
Emite - Facturación Electrónica
 
Servicios de TI de Eq Soft
Servicios de TI de Eq SoftServicios de TI de Eq Soft
Servicios de TI de Eq Soft
 
Desarrollando software de calidad
Desarrollando software de calidadDesarrollando software de calidad
Desarrollando software de calidad
 
Brochure EqSoft - 2017
Brochure EqSoft - 2017Brochure EqSoft - 2017
Brochure EqSoft - 2017
 
Replicacion Postgresql
Replicacion PostgresqlReplicacion Postgresql
Replicacion Postgresql
 
Brochure Soluciones de Sensores Para Museos
Brochure Soluciones de Sensores Para MuseosBrochure Soluciones de Sensores Para Museos
Brochure Soluciones de Sensores Para Museos
 
Programación en Pl/Python
Programación en Pl/PythonProgramación en Pl/Python
Programación en Pl/Python
 
Como cotizar servicios de desarrollo de software
Como cotizar servicios de desarrollo de softwareComo cotizar servicios de desarrollo de software
Como cotizar servicios de desarrollo de software
 
PostgreSQL
PostgreSQLPostgreSQL
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
 
Base de datos postgresql
Base de datos postgresqlBase de datos postgresql
Base de datos postgresql
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 

Ähnlich wie Sistema de Replicación de DBs de PostgreSQL 9.0

4.4 operaciones de_es
4.4 operaciones de_es4.4 operaciones de_es
4.4 operaciones de_es
beymarlopez
 
Protocolos de red
Protocolos de redProtocolos de red
Protocolos de red
sauluri187
 

Ähnlich wie Sistema de Replicación de DBs de PostgreSQL 9.0 (20)

Redes1
Redes1Redes1
Redes1
 
Redes 1 lizeth karina pinzon
Redes 1 lizeth karina pinzon Redes 1 lizeth karina pinzon
Redes 1 lizeth karina pinzon
 
Esx, vcenter, vclient, vmotion, freenas
Esx, vcenter, vclient, vmotion, freenas Esx, vcenter, vclient, vmotion, freenas
Esx, vcenter, vclient, vmotion, freenas
 
Redes 1. edwin pestana cobos
Redes 1.  edwin pestana cobosRedes 1.  edwin pestana cobos
Redes 1. edwin pestana cobos
 
Redes 1. edwin pestana cobos
Redes 1.  edwin pestana cobosRedes 1.  edwin pestana cobos
Redes 1. edwin pestana cobos
 
Edayo
EdayoEdayo
Edayo
 
Redes 1 gabriel rojas
Redes 1 gabriel rojasRedes 1 gabriel rojas
Redes 1 gabriel rojas
 
MUM Madrid 2016 - Mikrotik y Suricata
MUM Madrid 2016 - Mikrotik y SuricataMUM Madrid 2016 - Mikrotik y Suricata
MUM Madrid 2016 - Mikrotik y Suricata
 
Examenfdd
ExamenfddExamenfdd
Examenfdd
 
Clase 4 redes
Clase 4 redesClase 4 redes
Clase 4 redes
 
HARDWARE
HARDWAREHARDWARE
HARDWARE
 
4.4 operaciones de_es
4.4 operaciones de_es4.4 operaciones de_es
4.4 operaciones de_es
 
Microprocesador y sus partes
Microprocesador y sus partesMicroprocesador y sus partes
Microprocesador y sus partes
 
MONTAJE DE INFRAESTRUCTURA DE MÁQUINAS EN ALTA DISPONIBILIDAD VIRTUALIZADA
MONTAJE DE INFRAESTRUCTURA DE MÁQUINAS EN ALTA DISPONIBILIDAD VIRTUALIZADAMONTAJE DE INFRAESTRUCTURA DE MÁQUINAS EN ALTA DISPONIBILIDAD VIRTUALIZADA
MONTAJE DE INFRAESTRUCTURA DE MÁQUINAS EN ALTA DISPONIBILIDAD VIRTUALIZADA
 
Implementacion de NAT - JUGM 2010
Implementacion de NAT - JUGM 2010Implementacion de NAT - JUGM 2010
Implementacion de NAT - JUGM 2010
 
Interconectividad avanzada
Interconectividad avanzadaInterconectividad avanzada
Interconectividad avanzada
 
Protocolos de red
Protocolos de redProtocolos de red
Protocolos de red
 
Redesitas
RedesitasRedesitas
Redesitas
 
Evaluacion
EvaluacionEvaluacion
Evaluacion
 
Evaluacion
EvaluacionEvaluacion
Evaluacion
 

Mehr von EQ SOFT EIRL

Mehr von EQ SOFT EIRL (20)

Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19Libro sobre exportación de servicios post Covid-19
Libro sobre exportación de servicios post Covid-19
 
Peruanos en Twitter
Peruanos en TwitterPeruanos en Twitter
Peruanos en Twitter
 
Recomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia ArtificialRecomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
Recomendaciones Para el Tratamiento de Datos en Inteligencia Artificial
 
Centros Regionales de Innovación Aplicada
Centros Regionales de Innovación AplicadaCentros Regionales de Innovación Aplicada
Centros Regionales de Innovación Aplicada
 
EQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agrariaEQ Soft: Soluciones de innovación agraria
EQ Soft: Soluciones de innovación agraria
 
Transformación Digital en Logística
Transformación Digital en LogísticaTransformación Digital en Logística
Transformación Digital en Logística
 
Propuestas de innovacón financiera
Propuestas de innovacón financieraPropuestas de innovacón financiera
Propuestas de innovacón financiera
 
Clusters Empresariales en Latinoamérica
Clusters Empresariales en LatinoaméricaClusters Empresariales en Latinoamérica
Clusters Empresariales en Latinoamérica
 
Inteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración PúblicaInteligencia Artificial en la Administración Pública
Inteligencia Artificial en la Administración Pública
 
Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019Inteligencia artificial para las empresas 2019
Inteligencia artificial para las empresas 2019
 
Platique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBotPlatique.me solución integral de Smart ChatBot
Platique.me solución integral de Smart ChatBot
 
Logos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to TextLogos Dictados - solución de Speech to Text
Logos Dictados - solución de Speech to Text
 
Logos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de ConocimientosLogos Biblios - Gestión de Conocimientos
Logos Biblios - Gestión de Conocimientos
 
Logos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia ArtificialLogos, Framework de Inteligencia Artificial
Logos, Framework de Inteligencia Artificial
 
Internet of Food
Internet of FoodInternet of Food
Internet of Food
 
Logos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia ArtificialLogos: Framework de Inteligencia Artificial
Logos: Framework de Inteligencia Artificial
 
Presentación de Logos en el Cade Digital
Presentación de Logos en el Cade DigitalPresentación de Logos en el Cade Digital
Presentación de Logos en el Cade Digital
 
Logos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big DataLogos Codex: Plataforma de Big Data
Logos Codex: Plataforma de Big Data
 
Portafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoftPortafolio de Productos y Servicios de EqSoft
Portafolio de Productos y Servicios de EqSoft
 
Soluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesosSoluciones de RPA para automatizar procesos
Soluciones de RPA para automatizar procesos
 

Kürzlich hochgeladen

TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
amelia poma
 

Kürzlich hochgeladen (20)

BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLAACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
ACRÓNIMO DE PARÍS PARA SU OLIMPIADA 2024. Por JAVIER SOLIS NOYOLA
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Linea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docxLinea del tiempo - Filosofos Cristianos.docx
Linea del tiempo - Filosofos Cristianos.docx
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 

Sistema de Replicación de DBs de PostgreSQL 9.0

  • 1. Destripando el sistema de replicación de PostgreSQL 9.0 Ernesto Quiñones A. - CTO Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 2. ¡Advertencia! Esta charla es para explicar como funciona por dentro el sistema de replicación de PostgreSQL 9.0 no para enseñar a instalar un sistema de replicación. ¿Porque? Lo otro lo pueden aprender leyendo el manual. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 3. ¿Que es un sistema de replicación de base de datos? En simple: es mantener una 2da base de datos alterna con la data idéntica a la principal. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 4. ¿Porque debería tener un sistema de replicación para mi dbms? ● Para tener un sistema tolerable a fallas. ● Para balancear la carga de trabajo en diversos servidores. ● Para aplicaciones de alto consumo en consultas (B.I.) ● Para tener un ambiente de pruebas o desarrollo lo más parecido al ambiente de producción. ● Muchas otras que se puedan imaginar ….. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 5. OK ¿Por donde empezamos? Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 6. Características de la replicación interna de PgSQL 9.0 Es Streaming Replication Hot Standby ● No requiere hardware especial ● No requiere de servidores/servicios especiales ● No sobrecarga el servidor principal ● No requiere de un sistema de resolución de conflictos (al menos no adicionales al que ya implementa la base de datos) ● Si se cayera la replicación al menos tendré acceso de lectura ● Point-In-Time Recovery, es decir permite recuperar la data al tiempo pasado más cercano donde esta se encuentre bien. ● Usa WAL como método de cache, esta técnica permite asegurar que solo las operaciones bien realizadas actualicen la data (atomicidad y durabilidad). Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 7. ¿Qué no hay? ● Múltiples servidores maestros/principales ● Asegurar que ante una falla el servidor principal nunca va a perder la data ● Controlar la replicación a nivel de tablas Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 8. ¿Como funciona? En simple es: Servidor primario Servidor secundario Conexión de red pg_xlog/ pg_xlog/ WAL Traspasando WAL datos Data Data Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 9. El WAL es... Básicamente es un buffer donde se llevan a cabo las operaciones a la data y una vez terminada se pasan al almacenamiento de datos principal, si algo pasara entonces el área de datos permanecerá intacto solo se perderá lo que esta en el WAL. WAL genera segmentos de data de 16mb (configurable) en archivos físicos que tiene páginas de datos de 8kb (configurable). Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 10. El WAL es... typedef struct XLogRecord { pg_crc32 xl_crc; /* CRC for this record */ XLogRecPtr xl_prev; /* ptr to previous record in log */ TransactionId xl_xid; /* xact id */ uint32 xl_tot_len; /* total len of entire record */ uint32 xl_len; /* total len of rmgr data */ uint8 xl_info; /* flag bits, see below */ RmgrId xl_rmid; /* resource manager for this record */ } XLogRecord; typedef struct XLogRecData { char *data; /* start of rmgr data to include */ uint32 len; /* length of rmgr data to include */ Buffer buffer; /* buffer associated with data, if any */ bool buffer_std; /* buffer has standard pd_lower/pd_upper */ struct XLogRecData *next; /* next struct in chain, or NULL */ } XLogRecData; typedef struct CheckpointStatsData { TimestampTz ckpt_start_t; /* start of checkpoint */ TimestampTz ckpt_write_t; /* start of flushing buffers */ TimestampTz ckpt_sync_t; /* start of fsyncs */ TimestampTz ckpt_sync_end_t; /* end of fsyncs */ TimestampTz ckpt_end_t; /* end of checkpoint */ int ckpt_bufs_written; /* # of buffers written */ int ckpt_segs_added; /* # of new xlog segments created */ int ckpt_segs_removed; /* # of xlog segments deleted */ int ckpt_segs_recycled; /* # of xlog segments recycled */ } CheckpointStatsData; Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 11. El WAL es... Una ventaja del WAL es que puede residir en cualquier directorio y podemos hacer un enlace simbólico al directorio donde debería residir. En caso de que suceda un problema el WAL puede retroceder hacia el pasado hasta el último momento en que todo estuvo ok. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 12. El WAL es... WAL maneja varios niveles para especificar que tanto deseo almacenar en este buffer en el nivel mínimo solo contiene información para recuperar una db en caso de paradas abruptas del servicio. Para realizar la replicación requerimos aumentar el nivel de WAL para reconstruir toda la data de una db. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 13. El primer paso: indicar donde “copiaremos el WAL” En los archivos de configuración debemos indicar donde vamos a duplicar nuestros WAL files tomaremos en cuenta que debe existir una comunicación en ese file system entre los 2 servidores. Se puede usar NFS para ello, quizás (aún no lo he probado) podría usarse SSHFS como una forma más sencilla. Para asegurar que se copiarán todas las transacciones haremos que se mantenga un buen numero de segmentos WAL historicamente, pasar data por red tiene una demora importante que debemos tener en cuenta. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 14. El primer paso: indicar donde “copiaremos el WAL” Servidor Servidor Principal Replica NFS NFS Client ó ó Conexión SSH LAN SSHFS Server client NFS: SSHFS: * Más complicado de configurar * Más simple de configurar * Más rápido porque funciona a nivel * Más lento que NFS, 1 a 2, porque de protocolo más bajo y coordinado funciona en capa más alta de tcp/ip con el kernel. y básicamente es un SCP. * ¿Menos seguro en la transmisión? * ¿Más seguro en la transmisión? Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 15. El segundo paso: reconstruir la imagen inicial de la db en el servidor de destino. La Herramienta más popular para esto es Rsync. Rsync trabaja en base a deltas binarios para determinar los cambios bit a bit entre 2 árboles de directorio y los files que este contiene. Se saca un checksum (md5) de los contenidos para verificar contra el espejo que es lo que ha cambiado. En los 2 anteriores pasos mencionados hasta el momento existen algunas ventajas, estamos limitados a replicar únicamente a un solo servidor, podemos realizar esto en varios y en cascada, otra es que podemos hacer esto casi en caliente. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 16. Tercer paso: configurar el servidor réplica solo como servidor de consulta. Dado que las transacciones se manejarán en el servidor principal en las réplicas no podemos más que procesar consultas, ambos servicios no pueden escribir en la zona del WAL. Esto es un servidor HOTSTANDBY Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 17. HOTSTANDBY Hotstandby permite a PostgreSQL correr querys solo de consulta, de forma generica el estado Hotstandby permite recuperarse hasta un estado consistente a una db mientras esta sigue atendiendo conexiones. En la replica podemos ejecutar estos tipos de queries: Query access - SELECT, COPY TO Cursor commands - DECLARE, FETCH, CLOSE Parameters - SHOW, SET, RESET Transaction management commands BEGIN, END, ABORT, START TRANSACTION SAVEPOINT, RELEASE, ROLLBACK TO SAVEPOINT EXCEPTION blocks and other internal subtransactions LOCK TABLE, though only when explicitly in one of these modes: ACCESS SHARE, ROW SHARE or ROW EXCLUSIVE. Plans and resources - PREPARE, EXECUTE, DEALLOCATE, DISCARD Plugins and extensions - LOAD Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 18. HOTSTANDBY Uno podría iniciar una transacción pero el sistema nunca le asignará un espacio en el WAL por lo tanto nunca se grabará nada Los principales problemas que se pueden presentar son: ● Locks de Accesos Exclusivos en el servidor principal que bloquean tablas en la réplica. ● Borrar tablespace en el servidor principal que crean conflictos con queries que los usan en la réplica. ● Borrar una base de datos en el servidor principal y que en la replica existan conexiones a esta db. ● Correr un full vacuum mientras el WAL de la réplica aún tiene visible la fila. ● El mismo caso del anterior pero un query tiene acceso a las páginas a borrar. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 19. HOTSTANDBY En la mayoría de los casos el problema genera un delay, este puede ser demasiado grande debido al control de concurrencias por ejemplo: * servidor réplica lanza un query con lock exclusivo sobre una tabla enorme que toma 15” * llega un drop table del servidor primario * servidor réplica sigue procesando el query * servidor primario sigue trabajando normalmente * servidor replica tiene paradas las transacciones replicadas del servidor primario hasta que no acabe el query en la réplica * termina el query en el servidor réplica y por fin aplica los otros cambios encolados * tenemos 15” minutos de retraso … si es que no pasa de nuevo Para ello es deseable configurar el tiempo de espera para procesar el WAL y no tener este tipo de problemas, los queries que sobrepasen este tiempo serán abortados. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 20. ¿Qué falta? Pues nada, iniciar el servidor réplica, durante este inicio y mientras la db se “sincroniza” con el servidor principal las conexiones de clientes no estarán disponibles hasta que se llegue a un punto en el cual la información ya es consistente. Luego de este paso todo esta listo, tenemos un servidor de réplica corriendo :-) Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 21. Toda la documentación de esta exposición la pueden encontrar aquí : http://tinyurl.com/3wuugpq O en simple: http//www.eqsoft.net/wiki (sección Nuestras Ponencias) Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net
  • 22. Gracias por su tiempo. Eq Soft Consultoría y Soporte E.I.R.L. Jr. Elvira García y García 2642 Urb. Los Cipreces- Lima 1 – Perú Teléfonos: (51-1) 5645744 – 997244926 – 997003957 E-mail : informes@eqsoft.net http://www.eqsoft.net