Jaime Casanova - Domando a la bestia Replicación

860 visualizações

Publicada em

Muestra como usar la herramienta "repmgr" para administrar un cluster de replicación en PostgreSQL. Desde crear nodos, hasta configurar un procedimiento simple de Failover automático. También incluirá algunas ideas con respecto a la nueva tecnología de 2ndQuadrant: BDR

--

Palestra apresentada por Jaime Casanova no PGDay Campinas 2014

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
860
No SlideShare
0
A partir de incorporações
0
Número de incorporações
10
Ações
Compartilhamentos
0
Downloads
18
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Jaime Casanova - Domando a la bestia Replicación

  1. 1. Domando a la bestia: replicación Jaime Casanova - CTO 2ndQuadrant Ecuador
  2. 2. Domando a la bestia: replicación Replicación: una bestia dificil de domar Copyright © 2014, 2ndQuadrant Limited 2
  3. 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. 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. 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. 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. 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. 8. Domando a la bestia: replicación Conclusiones ¿Preguntas? BDR Replicación Bi-Direccional (Multi-maestro) Copyright © 2014, 2ndQuadrant Limited 8

×