SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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 Ignacio Lozano
 
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 LinuxOlaf Reitmaier Veracierta
 
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 squid3ALBERTO CHUICA
 
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 instructionsJose Perez
 
Configuraciones adicionales del GRUB
Configuraciones adicionales del GRUBConfiguraciones adicionales del GRUB
Configuraciones adicionales del GRUBFrancisco Javier
 
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.3Loquenecesito,com
 
Zimbra
ZimbraZimbra
Zimbrauni
 
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 DatosAlejandro Valdes Jimenez
 
Ubunturef(esp) Comandos
Ubunturef(esp) ComandosUbunturef(esp) Comandos
Ubunturef(esp) ComandosAvel·lí
 

Mais procurados (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
 

Destaque

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 CiurcioPGDay Campinas
 
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 BarmanCaio Oliveira
 
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 MADlibPGDay Campinas
 
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 – SurpreendentePGDay Campinas
 
PGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBAPGAnalytics - Facilitando sua vida do DBA
PGAnalytics - Facilitando sua vida do DBADextra
 
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)
NoSQL + SQL = PostgreSQL (PGDay Campinas 2014)Fabrízio Mello
 
Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Palestra Diogo Rubert - PGDAY Campinas 2015
Palestra Diogo Rubert - PGDAY Campinas 2015Diogo L. V. G. Rubert
 
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 - 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
 
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
 
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 textualPGDay Campinas
 
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.0Marcos William Valentini
 
PGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ CloudPGDay Campinas 2013 - Postgres XC @ Cloud
PGDay Campinas 2013 - Postgres XC @ CloudPGDay 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
 
DevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento ÁgilDevOps & PostgreSQL - Provisionamento Ágil
DevOps & PostgreSQL - Provisionamento Ágilinstructbr
 
PGDAY - Palestra PostGIS + PgRouting
PGDAY - Palestra PostGIS + PgRoutingPGDAY - Palestra PostGIS + PgRouting
PGDAY - Palestra PostGIS + PgRoutingJairo de Almeida
 
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 PostgreSQLMatheus de Oliveira
 
Ux na vida real deedz
Ux na vida real  deedzUx na vida real  deedz
Ux na vida real deedzDextra
 

Destaque (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
 

Semelhante a Jaime Casanova - Domando a la bestia Replicación

LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)Emanuel Calvo
 
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
 
Alta disponibilidad con MySQL
Alta disponibilidad con MySQLAlta disponibilidad con MySQL
Alta disponibilidad con MySQLDennis Cohn
 
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...Nelson Calero
 
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
 
Cisco CCNA v5 Lab
Cisco CCNA v5 LabCisco CCNA v5 Lab
Cisco CCNA v5 Labant09_sain
 
Curso Seminario Zimbra Correo Gye Ecuador
Curso Seminario Zimbra Correo Gye EcuadorCurso Seminario Zimbra Correo Gye Ecuador
Curso Seminario Zimbra Correo Gye EcuadorJossJorgeArevalo
 
Clusters Beowulf
Clusters BeowulfClusters Beowulf
Clusters Beowulfsrcid
 
Policyd: Instalacion y configuracion
Policyd: Instalacion y configuracionPolicyd: Instalacion y configuracion
Policyd: Instalacion y configuracioncriscega
 
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 featuresNelson Calero
 
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 12cGustavo Rene Antunez
 
Presentacion instaladores os debian centos
Presentacion instaladores os debian centosPresentacion instaladores os debian centos
Presentacion instaladores os debian centosOpenStack-VE
 
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.1Francisco Medina
 
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 NmapWebsec México, S.C.
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magentoOnestic
 
Inf completa 2500
Inf completa 2500Inf completa 2500
Inf completa 25001 2d
 

Semelhante a 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