← Back to blog

Patroni: high availability для PostgreSQL

⚙️ Теория

🧩 Что делает Patroni

Patroni автоматизирует управление HA для PostgreSQL:

  • лидерство и failover;
  • конфигурация кластера через DCS;
  • health checks и orchestration ролей primary/replica.

🧠 DCS и лидерство

Patroni использует Distributed Configuration Store (например etcd/Consul/Kubernetes API) для:

  • хранения состояния кластера;
  • lock на лидерство;
  • координации переключений.

🔄 Failover / Switchover

  • failover при проблеме primary по политике кластера;
  • switchover как контролируемое плановое переключение.

Критично настроить fencing и клиентскую маршрутизацию на актуального primary.


⚠️ Где обычно проблемы

  • нестабильный DCS;
  • невалидные ttl/timeouts в конфигурации;
  • отсутствие регулярных drills переключения.

Что нужно уметь объяснить

Почему Patroni не отменяет backup strategy?

Patroni решает HA/availability, но не заменяет backup/restore от логических ошибок и человеческих действий.

Почему DCS это критическая зависимость?

Потому что от его консистентности зависит корректность leader election и отсутствие split-brain.

Что делать обязательно перед production?

Провести серийные failover/switchover тесты и проверить поведение клиентов/прокси.


🧪 Практика

1. Проверка состояния Patroni

patronictl -c /etc/patroni.yml list

2. Плановый switchover

patronictl -c /etc/patroni.yml switchover

3. Guardrails

  • мониторинг DCS latency/availability;
  • репликационный lag как ключевой алерт;
  • регулярный rehearsal recovery-процедур.

🧾 Вывод

Patroni существенно упрощает HA PostgreSQL, если есть стабильный DCS, корректная маршрутизация и дисциплина тестирования переключений.


📚 Ссылки


Проверка источников

Patroni: high availability для PostgreSQL | Aleksandr Suprun