Jaime Casanova - Domando a la bestia Replicación
-
Upload
pgday-campinas -
Category
Software
-
view
166 -
download
8
description
Transcript of Jaime Casanova - Domando a la bestia Replicación
Domando a la bestia: replicación
Jaime Casanova - CTO 2ndQuadrant Ecuador
Domando a la bestia: replicación
Copyright © 2014, 2ndQuadrant Limited 2
Replicación: una bestia dificil de domar
Domando a la bestia: replicación
Copyright © 2014, 2ndQuadrant Limited 3
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
Domando a la bestia: replicación
Copyright © 2014, 2ndQuadrant Limited 4
• 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+)
Domando a la bestia: replicación
Copyright © 2014, 2ndQuadrant Limited 5
Replicación física Parámetro | Valor----------------------------+-------------------- wal_level | hot_standby max_wal_senders | 10
archive_command | exit 0archive_mode | on
hot_standby | onhot_standby_feedback | onmax_replication_slots | 10wal_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 lasmismas
Domando a la bestia: replicación
Copyright © 2014, 2ndQuadrant Limited 6
• 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
Domando a la bestia: replicación
Copyright © 2014, 2ndQuadrant Limited 7
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=60reconnect_attempts=6reconnect_interval=10
• Priorización de nodos
failover=manualpriority=-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'
Domando a la bestia: replicación
Copyright © 2014, 2ndQuadrant Limited 8
Conclusiones
¿Preguntas?
BDR
Replicación Bi-Direccional (Multi-maestro)