Weitere ähnliche Inhalte Ähnlich wie Jaime Casanova - Domando a la bestia Replicación (20) Jaime Casanova - Domando a la bestia Replicación1. 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