SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
Domando a la bestia: replicación 
Jaime Casanova - CTO 2ndQuadrant Ecuador
Domando a la bestia: replicación 
Replicación: una bestia dificil de domar 
Copyright © 2014, 2ndQuadrant Limited 2
Domando a la bestia: replicación 
Replicación: una bestia dificil de domar 
Primeros intentos 
• Replicación basada en triggers 
• Slony / Londiste 
• Replicación basada en middleware 
• pgpool 
Replicación basada en triggers 
• No replica DDL 
• Al principio tratar de ejecutar DDL’s en todos los nodos era un dolor de cabeza 
• Administración compleja 
• Configuración por tabla, flexible 
Copyright © 2014, 2ndQuadrant Limited 3
Domando a la bestia: replicación 
• Puede ser peligrosa mal utilizada 
Replicación basada en triggers 
• Incializar el cluster (un esquema y tablas para configuración) 
• Agregar nodos 
• Agregar rutas de conexión 
• Agregar tablas 
• Copia inicial 
• Procesos en segundo plano 
Mantenimiento en cada nodo de forma independiente 
Replicación basada en middleware 
• Simplemente peligrosa 
Replicación física 
• Basada en archivos (8.2+) 
• Administración simple 
• Posible perdida de hasta los últimos 16MB o los últimos N segundos 
• Basada en flujo de replicación (9.0+) 
• Administración simple 
• Cero perdida de datos es posible 
• synchronous_commit y synchronous_standby_names (9.1+) 
Copyright © 2014, 2ndQuadrant Limited 4
Domando a la bestia: replicación 
Replicación física 
Parámetro | Valor 
----------------------------+-------------------- 
wal_level | hot_standby 
max_wal_senders | 10 
archive_command | exit 0 
archive_mode | on 
hot_standby | on 
hot_standby_feedback | on 
max_replication_slots | 10 
wal_keep_segments | 5000 
La replicación física trae sus propios problemas 
• ¿Como se monitorea? 
• La decepción de pg_stat_replication (9.1+) 
• ¿Cómo escoger un nuevo primario? 
• ¿Qué pasa con el cluster? 
repmgr: para domar la replicación física 
• Administra, de forma simple, un cluster de replicación física 
• Monitorea los nodos 
• Promueve un nodo de forma segura 
• Reconfigura el cluster 
• Autofailover (v2.0+) 
repmgr standby clone 
Prepara un nuevo nodo 
• Verifica que existan las rutas de los tablespaces y que el usuario postgres pueda escribir en las 
mismas 
Copyright © 2014, 2ndQuadrant Limited 5
Domando a la bestia: replicación 
• Copia los archivos de configuración aun cuando esten fuera de la ruta normal 
• Intenta no copiar todos los datos cuando estos ya existen 
• La opción --force 
• El misterio de wal_keep_segments 
• 5000 segmentos u 80GB de espacio 
• La opción --wal-keep-segments 
• Mejoras en v2.1 (9.4+) 
repmgr standby promote 
• ¿Qué nodo promover? 
postgres=# select * from repmgr_test.repl_status ; 
primary_node 1 
standby_node 2 
standby_name deimos 
last_monitor_time 2014-09-09 08:43:02.289029-05 
last_wal_primary_location 0/3039700 
last_wal_standby_location 0/3039700 
replication_lag 0 bytes 
replication_time_lag 00:00:03.137791 
apply_lag 0 bytes 
communication_time_lag 00:00:00.632396 
repmgr standby promote 
• Mejoras en v2.1 (9.3+) 
• pg_ctl promote 
repmgr standby follow 
• Reconfigura el cluster para que todos las réplicas sigan al nuevo maestro. 
• El detecta quien es el nuevo maestro 
Copyright © 2014, 2ndQuadrant Limited 6
Domando a la bestia: replicación 
Autofailover (v2.0+) 
• Se requiere un número impar de nodos 
• repmgr provee la funcionalidad de witness 
repmgr witness create 
• Cada nodo tiene la información suficiente para tomar una decisión informada 
repmgr_get_last_standby_location() 
repmgr_update_standby_location(text) 
repmgr_get_last_updated() 
repmgr_update_last_updated() 
Autofailover (v2.0+) 
• Tiempo de reacción ante la perdida del maestro configurable 
master_response_timeout=60 
reconnect_attempts=6 
reconnect_interval=10 
• Priorización de nodos 
failover=manual 
priority=-1 
• Acciones personalizables para eventos promote y follow 
promote_command='repmgr standby promote -f /path/to/repmgr.conf' 
follow_command='repmgr standby follow -f /path/to/repmgr.conf -W' 
Copyright © 2014, 2ndQuadrant Limited 7
Domando a la bestia: replicación 
Conclusiones 
¿Preguntas? 
BDR 
Replicación Bi-Direccional (Multi-maestro) 
Copyright © 2014, 2ndQuadrant Limited 8

Weitere ähnliche Inhalte

Was ist angesagt?

11.4.2.5 packet tracer backing up configuration files instructions
11.4.2.5 packet tracer   backing up configuration files instructions11.4.2.5 packet tracer   backing up configuration files instructions
11.4.2.5 packet tracer backing up configuration files instructions
Jose Perez
 
Thunder cache 3.1.2 en centos 6.3
Thunder cache 3.1.2 en centos 6.3Thunder cache 3.1.2 en centos 6.3
Thunder cache 3.1.2 en centos 6.3
Loquenecesito,com
 
Zimbra
ZimbraZimbra
Zimbra
uni
 
GNS3 Una Herramienta para Simulación de Redes de o Datos
GNS3 Una Herramienta para Simulación de Redes de o DatosGNS3 Una Herramienta para Simulación de Redes de o Datos
GNS3 Una Herramienta para Simulación de Redes de o Datos
Alejandro Valdes Jimenez
 
Ubunturef(esp) Comandos
Ubunturef(esp) ComandosUbunturef(esp) Comandos
Ubunturef(esp) Comandos
Avel·lí
 

Was ist angesagt? (19)

Manual de Instalación y configuración Zimbra
Manual de Instalación  y configuración Zimbra Manual de Instalación  y configuración Zimbra
Manual de Instalación y configuración Zimbra
 
PXE
PXEPXE
PXE
 
Pxe
PxePxe
Pxe
 
High Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on LinuxHigh Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on Linux
 
Seguridad de las Redes
Seguridad de las RedesSeguridad de las Redes
Seguridad de las Redes
 
Pxe
PxePxe
Pxe
 
VMS cambio IP
VMS cambio IPVMS cambio IP
VMS cambio IP
 
Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3Comandos básicos para utilizar squid o squid3
Comandos básicos para utilizar squid o squid3
 
11.4.2.5 packet tracer backing up configuration files instructions
11.4.2.5 packet tracer   backing up configuration files instructions11.4.2.5 packet tracer   backing up configuration files instructions
11.4.2.5 packet tracer backing up configuration files instructions
 
Configuraciones adicionales del GRUB
Configuraciones adicionales del GRUBConfiguraciones adicionales del GRUB
Configuraciones adicionales del GRUB
 
Thunder cache 3.1.2 en centos 6.3
Thunder cache 3.1.2 en centos 6.3Thunder cache 3.1.2 en centos 6.3
Thunder cache 3.1.2 en centos 6.3
 
Squid
SquidSquid
Squid
 
Zimbra
ZimbraZimbra
Zimbra
 
Clase5 (consola linux)
Clase5 (consola linux)Clase5 (consola linux)
Clase5 (consola linux)
 
P6 DOS ROUTERS
P6 DOS ROUTERSP6 DOS ROUTERS
P6 DOS ROUTERS
 
GNS3 Una Herramienta para Simulación de Redes de o Datos
GNS3 Una Herramienta para Simulación de Redes de o DatosGNS3 Una Herramienta para Simulación de Redes de o Datos
GNS3 Una Herramienta para Simulación de Redes de o Datos
 
Comandos de red icas
Comandos de red icasComandos de red icas
Comandos de red icas
 
Ubunturef
UbunturefUbunturef
Ubunturef
 
Ubunturef(esp) Comandos
Ubunturef(esp) ComandosUbunturef(esp) Comandos
Ubunturef(esp) Comandos
 

Andere mochten auch

PGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlibPGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas
 
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
PGDay Campinas
 
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do ParanáPGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas
 

Andere mochten auch (20)

DevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di Ciurcio
DevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di CiurcioDevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di Ciurcio
DevOps e PostgreSQL: Replicação de forma simplificada | Miguel Di Ciurcio
 
Gerenciamento de Backup e Recovery com o Barman
Gerenciamento de Backup e Recovery com o BarmanGerenciamento de Backup e Recovery com o Barman
Gerenciamento de Backup e Recovery com o Barman
 
PGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlibPGDay Campinas 2013 - Mineração de Dados com MADlib
PGDay Campinas 2013 - Mineração de Dados com MADlib
 
Pgday campinas 2015
Pgday campinas 2015Pgday campinas 2015
Pgday campinas 2015
 
PGDay Campinas 2013 - Window Function e CTE – Surpreendente
PGDay Campinas 2013 - Window Function e CTE – SurpreendentePGDay Campinas 2013 - Window Function e CTE – Surpreendente
PGDay Campinas 2013 - Window Function e CTE – Surpreendente
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBA
 
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
 
Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015
 
pgDay Campinas – 2015
pgDay Campinas – 2015pgDay Campinas – 2015
pgDay Campinas – 2015
 
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
CASE: O PostgreSQL em BI: Milhares de operações diárias consolidadas em "near...
 
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
PGDay Campinas 2013 - PL/pg…ETL – Transformação de dados para DW e BI usando ...
 
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com a...
 
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textualPGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
PGDay Campinas 2013 - Como Full Text Search pode ajudar na busca textual
 
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
Pgday Campinas 2015 - Uma visão do PPAS 9.4 e PEM 5.0
 
PGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ CloudPGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ Cloud
 
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do ParanáPGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
PGDay Campinas 2013 - CASE: PostgreSQL no Tribunal de Justiça do Paraná
 
DevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento ÁgilDevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento Ágil
 
PGDAY - Palestra PostGIS + PgRouting
PGDAY - Palestra PostGIS + PgRoutingPGDAY - Palestra PostGIS + PgRouting
PGDAY - Palestra PostGIS + PgRouting
 
Análise de performance usando as estatísticas do PostgreSQL
Análise de performance usando as estatísticas do PostgreSQLAnálise de performance usando as estatísticas do PostgreSQL
Análise de performance usando as estatísticas do PostgreSQL
 
Ux na vida real deedz
Ux na vida real  deedzUx na vida real  deedz
Ux na vida real deedz
 

Ähnlich wie Jaime Casanova - Domando a la bestia Replicación

Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...
Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...
Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...
SUSE España
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - Cluster
Miguel Angel Nieto
 
Curso Seminario Zimbra Correo Gye Ecuador
Curso Seminario Zimbra Correo Gye EcuadorCurso Seminario Zimbra Correo Gye Ecuador
Curso Seminario Zimbra Correo Gye Ecuador
JossJorgeArevalo
 
Policyd: Instalacion y configuracion
Policyd: Instalacion y configuracionPolicyd: Instalacion y configuracion
Policyd: Instalacion y configuracion
criscega
 
Presentacion instaladores os debian centos
Presentacion instaladores os debian centosPresentacion instaladores os debian centos
Presentacion instaladores os debian centos
OpenStack-VE
 
Inf completa 2500
Inf completa 2500Inf completa 2500
Inf completa 2500
1 2d
 

Ähnlich wie Jaime Casanova - Domando a la bestia Replicación (20)

LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)
 
Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...
Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...
Transformación Digital: Sistemas de Misión Crítica, SAP, Zero Downtime y High...
 
Alta disponibilidad con MySQL
Alta disponibilidad con MySQLAlta disponibilidad con MySQL
Alta disponibilidad con MySQL
 
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
 
EC2: Cómputo en la nube a profundidad
EC2: Cómputo en la nube a profundidadEC2: Cómputo en la nube a profundidad
EC2: Cómputo en la nube a profundidad
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - Cluster
 
Cisco CCNA v5 Lab
Cisco CCNA v5 LabCisco CCNA v5 Lab
Cisco CCNA v5 Lab
 
EC2 Cómputo en la nube a profundidad
EC2 Cómputo en la nube a profundidad EC2 Cómputo en la nube a profundidad
EC2 Cómputo en la nube a profundidad
 
Curso Seminario Zimbra Correo Gye Ecuador
Curso Seminario Zimbra Correo Gye EcuadorCurso Seminario Zimbra Correo Gye Ecuador
Curso Seminario Zimbra Correo Gye Ecuador
 
Clusters Beowulf
Clusters BeowulfClusters Beowulf
Clusters Beowulf
 
Policyd: Instalacion y configuracion
Policyd: Instalacion y configuracionPolicyd: Instalacion y configuracion
Policyd: Instalacion y configuracion
 
UYOUG 2012 - Oracle RAC 11gR2 - New features
UYOUG 2012 - Oracle RAC 11gR2 - New featuresUYOUG 2012 - Oracle RAC 11gR2 - New features
UYOUG 2012 - Oracle RAC 11gR2 - New features
 
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12cCosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
Cosas que “probablemente” no sabes pero deberías de saber en Oracle 12c
 
Presentacion instaladores os debian centos
Presentacion instaladores os debian centosPresentacion instaladores os debian centos
Presentacion instaladores os debian centos
 
Docker y PostgreSQL
Docker y PostgreSQLDocker y PostgreSQL
Docker y PostgreSQL
 
Actividad No. 1.14: Replicación de datos en MySQL 5.1
Actividad No. 1.14: Replicación de datos en  MySQL 5.1Actividad No. 1.14: Replicación de datos en  MySQL 5.1
Actividad No. 1.14: Replicación de datos en MySQL 5.1
 
Taller: Exploración de redes con Nmap
Taller: Exploración de redes con NmapTaller: Exploración de redes con Nmap
Taller: Exploración de redes con Nmap
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Inf completa 2500
Inf completa 2500Inf completa 2500
Inf completa 2500
 
Avances Clusterware en Oracle 11g Release 2
Avances Clusterware en Oracle 11g Release 2Avances Clusterware en Oracle 11g Release 2
Avances Clusterware en Oracle 11g Release 2
 

Jaime Casanova - Domando a la bestia Replicación

  • 1. Domando a la bestia: replicación Jaime Casanova - CTO 2ndQuadrant Ecuador
  • 2. Domando a la bestia: replicación Replicación: una bestia dificil de domar Copyright © 2014, 2ndQuadrant Limited 2
  • 3. Domando a la bestia: replicación Replicación: una bestia dificil de domar Primeros intentos • Replicación basada en triggers • Slony / Londiste • Replicación basada en middleware • pgpool Replicación basada en triggers • No replica DDL • Al principio tratar de ejecutar DDL’s en todos los nodos era un dolor de cabeza • Administración compleja • Configuración por tabla, flexible Copyright © 2014, 2ndQuadrant Limited 3
  • 4. Domando a la bestia: replicación • Puede ser peligrosa mal utilizada Replicación basada en triggers • Incializar el cluster (un esquema y tablas para configuración) • Agregar nodos • Agregar rutas de conexión • Agregar tablas • Copia inicial • Procesos en segundo plano Mantenimiento en cada nodo de forma independiente Replicación basada en middleware • Simplemente peligrosa Replicación física • Basada en archivos (8.2+) • Administración simple • Posible perdida de hasta los últimos 16MB o los últimos N segundos • Basada en flujo de replicación (9.0+) • Administración simple • Cero perdida de datos es posible • synchronous_commit y synchronous_standby_names (9.1+) Copyright © 2014, 2ndQuadrant Limited 4
  • 5. Domando a la bestia: replicación Replicación física Parámetro | Valor ----------------------------+-------------------- wal_level | hot_standby max_wal_senders | 10 archive_command | exit 0 archive_mode | on hot_standby | on hot_standby_feedback | on max_replication_slots | 10 wal_keep_segments | 5000 La replicación física trae sus propios problemas • ¿Como se monitorea? • La decepción de pg_stat_replication (9.1+) • ¿Cómo escoger un nuevo primario? • ¿Qué pasa con el cluster? repmgr: para domar la replicación física • Administra, de forma simple, un cluster de replicación física • Monitorea los nodos • Promueve un nodo de forma segura • Reconfigura el cluster • Autofailover (v2.0+) repmgr standby clone Prepara un nuevo nodo • Verifica que existan las rutas de los tablespaces y que el usuario postgres pueda escribir en las mismas Copyright © 2014, 2ndQuadrant Limited 5
  • 6. Domando a la bestia: replicación • Copia los archivos de configuración aun cuando esten fuera de la ruta normal • Intenta no copiar todos los datos cuando estos ya existen • La opción --force • El misterio de wal_keep_segments • 5000 segmentos u 80GB de espacio • La opción --wal-keep-segments • Mejoras en v2.1 (9.4+) repmgr standby promote • ¿Qué nodo promover? postgres=# select * from repmgr_test.repl_status ; primary_node 1 standby_node 2 standby_name deimos last_monitor_time 2014-09-09 08:43:02.289029-05 last_wal_primary_location 0/3039700 last_wal_standby_location 0/3039700 replication_lag 0 bytes replication_time_lag 00:00:03.137791 apply_lag 0 bytes communication_time_lag 00:00:00.632396 repmgr standby promote • Mejoras en v2.1 (9.3+) • pg_ctl promote repmgr standby follow • Reconfigura el cluster para que todos las réplicas sigan al nuevo maestro. • El detecta quien es el nuevo maestro Copyright © 2014, 2ndQuadrant Limited 6
  • 7. Domando a la bestia: replicación Autofailover (v2.0+) • Se requiere un número impar de nodos • repmgr provee la funcionalidad de witness repmgr witness create • Cada nodo tiene la información suficiente para tomar una decisión informada repmgr_get_last_standby_location() repmgr_update_standby_location(text) repmgr_get_last_updated() repmgr_update_last_updated() Autofailover (v2.0+) • Tiempo de reacción ante la perdida del maestro configurable master_response_timeout=60 reconnect_attempts=6 reconnect_interval=10 • Priorización de nodos failover=manual priority=-1 • Acciones personalizables para eventos promote y follow promote_command='repmgr standby promote -f /path/to/repmgr.conf' follow_command='repmgr standby follow -f /path/to/repmgr.conf -W' Copyright © 2014, 2ndQuadrant Limited 7
  • 8. Domando a la bestia: replicación Conclusiones ¿Preguntas? BDR Replicación Bi-Direccional (Multi-maestro) Copyright © 2014, 2ndQuadrant Limited 8