Failover y elección del líder (Patroni, Stolon)
Utilice Patroni o Stolon para realizar un failover automático y configure el quórum para evitar el split-brain.
Failover y elección del líder (Patroni, Stolon) es una lección gratuita de SQL Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Academy incluye 4 lecciones en total.
¿Por qué automatizar la conmutación por error?
La conmutación por error manual es lenta y propensa a errores. Las herramientas detectan el fallo de la instancia principal y promocionan una réplica sin intervención humana.
Pasos de la conmutación por error
Esto es lo que debe suceder:
- Detectar que la instancia principal está caída (comprobaciones de estado y consenso)
- Elegir la réplica con el WAL más reciente
- Promocionarla (pg_promote / pg_ctl promote)
- Reconfigurar las demás réplicas para que sigan a la nueva instancia principal
- Actualizar el enrutamiento de conexiones de la aplicación
Riesgo de cerebro dividido
Si la red se particiona, podría promocionar una réplica mientras la antigua instancia principal sigue activa. Dos instancias principales implican escrituras en conflicto y corrupción de datos. Evítelo usando un quórum.
Patroni
Daemon de Python que utiliza un DCS externo (almacén de configuración distribuida), normalmente etcd, Consul o Zookeeper, para elegir al líder:
# patroni.yml
name: pg1
scope: my_cluster
etcd:
hosts: 10.0.0.10:2379,10.0.0.11:2379,10.0.0.12:2379
postgresql:
data_dir: /var/lib/postgresql/dataCómo elige Patroni al nuevo líder
El daemon de Patroni de cada nodo compite por adquirir un bloqueo de líder en etcd. Solo uno puede mantenerlo; ese nodo se convierte en la instancia principal. Los demás lo siguen.
Stolon
Alternativa basada en Go. Utiliza un modelo de consenso similar, pero con características operativas diferentes. Divide las responsabilidades entre los componentes sentinel, keeper y proxy.
repmgr
Herramienta más ligera de 2ndQuadrant: ofrece menos automatización y más control manual. Es adecuada para configuraciones pequeñas.
Conmutación por error gestionada en la nube
RDS, Cloud SQL y Aurora gestionan la conmutación por error por usted. Se sacrifica flexibilidad a cambio de una operación más sencilla.
Enrutamiento de conexiones después de una conmutación por error
Las aplicaciones deben conocer la nueva instancia principal. Opciones:
- Actualización de DNS (lenta debido al TTL)
- IP flotante gestionada por la herramienta de conmutación por error
- Capa de proxy: HAProxy, pgbouncer + script o el endpoint de AWS RDS
Replicación síncrona y conmutación por error
Un standby síncrono garantiza que no se pierdan datos. Combínelo con la conmutación por error automatizada para obtener la máxima disponibilidad.
Quórum
Para la replicación síncrona, configure synchronous_standby_names con un quórum: ANY 2 de 3 réplicas deben confirmar. Así tolera una réplica lenta o fallida sin bloquear las confirmaciones.
synchronous_standby_names = 'ANY 2 (replica1, replica2, replica3)'Lectura de las propias escrituras
Después de una conmutación por error o cuando existe retraso de replicación, una aplicación podría escribir en la nueva instancia principal y leer inmediatamente datos obsoletos de una réplica. Enrute las lecturas posteriores a escrituras a la instancia principal o use el seguimiento de pg_last_wal_replay_lsn.
Prueba de la conmutación por error
Pruébela antes de necesitarla. Detenga la instancia principal en staging cada mes. Practique el procedimiento operativo. El estrés de una conmutación por error real ya es suficientemente grave; las sorpresas lo empeoran.
Resumen
La conmutación por error automatizada elimina a las personas de una ruta crítica.
- Patroni / Stolon para instalaciones autogestionadas
- RDS / Cloud SQL para servicios gestionados
- Cuidado con el cerebro dividido: use un quórum
- Practique la conmutación por error con regularidad
Comprobación rápida
¿Qué significa «cerebro dividido» en el contexto de la replicación de PostgreSQL?
Aprende SQL con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 46
- Lecciones
- 183
Preguntas frecuentes
¿La lección «Failover y elección del líder (Patroni, Stolon)» es gratis?
Sí — el texto completo de «Failover y elección del líder (Patroni, Stolon)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Academy, actualiza a CoddyKit PRO. El curso de SQL Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Failover y elección del líder (Patroni, Stolon)»?
Utilice Patroni o Stolon para realizar un failover automático y configure el quórum para evitar el split-brain. Practicas SQL Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar SQL Academy?
No se requiere experiencia previa. SQL Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Failover y elección del líder (Patroni, Stolon)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de SQL Academy?
Sí. Cada lección de SQL Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Replicación en streaming y WAL
- Replicación lógica para fragmentación
- Failover y elección del líder (Patroni, Stolon)
- Réplicas de lectura y enrutamiento de conexiones