Высокая доступность PostgreSQL: проектирование, тестирование на отказ и исправление с помощью Pat...
PostgreSQL Mechanics и AI Mechanics
0:00 / 0:00
Высокая доступность PostgreSQL: проектирование, тестирование на отказ и исправление с помощью Pat...
908 просмотров · 2 месяца назад
PostgreSQL Mechanics и AI Mechanics
908 просмотров · 2 месяца назад
Высокая доступность базы данных PostgreSQL: Patroni, отказоустойчивость и отработка действий в случае сбоя, доказывающая работоспособность HA.
В этом практическом руководстве по обеспечению высокой доступности PostgreSQL объясняется потоковая репликация, автоматическая отказоустойчивость, выбор лидера, защита от сбоев, кворум, предотвращение разделения сети, объединение соединений и стабильный виртуальный IP-адрес. Без слайдов: одна полная архитектура, построенная шаг за шагом и протестированная с помощью реальных отработок действий в случае сбоя.
СТЕК
• PostgreSQL: хранит данные и передает потоки WAL
• Patroni: управляет начальной загрузкой, повышением и понижением статуса
• etcd: обеспечивает выбор лидера и кворум
• HAProxy: направляет трафик на текущий основной узел
• PgBouncer: контролирует нагрузку на соединения бэкэнда
• Keepalived: обеспечивает стабильный виртуальный IP-адрес
ЧТО ВЫ УЗНАЕТЕ
• Почему одной репликации недостаточно для отказоустойчивости
• Как Patroni повышает статус и блокирует узлы PostgreSQL
• Почему кворум etcd предотвращает «разделение мозга»
• Как maximum_lag_on_failover контролирует отказоустойчивость и доступность
• Как синхронный режим кворума снижает подтвержденную потерю данных
• Почему HAProxy проверяет Patroni, а не PostgreSQL
• Как PgBouncer сокращает количество клиентов до контролируемых бэкэндов
• Что происходит при отказе основного узла, маршрутизатора или кворума
• Почему высокая доступность никогда не заменяет резервное копирование и PITR
РАЗДЕЛЫ
0:00 Один узел — это одна область отказа
0:29 Убийство it: RTO становится временем восстановления, зависящим от человека
0:54 Потоковая репликация: отправитель WAL к получателю WAL
1:22 Слоты репликации и почему задержка — это ваш RPO
1:58 Реплика — это не отказоустойчивость (SQLSTATE 25006)
2:23 Ручное повышение создает разветвление временной шкалы (pg_rewind)
2:56 Patroni управляет жизненным циклом PostgreSQL
3:24 etcd и Raft: внешний арбитр
3:53 Лидерство — это возобновляемая аренда
4:21 Ограждение, самопонижение и сторожевой пес
4:54 Автоматическое переключение при отказе шаг за шагом
5:21 Три узла и реальные домены отказа
5:51 maximum_lag_on_failover
6:20 Синхронный режим кворума
6:50 HAProxy проверяет работоспособность Patroni
7:21 PgBouncer: 500 клиентов к 32 бэкэндам
8:00 Избыточность для маршрутизатора слой
8:29 Keepalived VRRP и стабильный VIP
8:55 Полная шестиуровневая система
9:21 УПРАЖНЕНИЕ 1: отключение основного маршрутизатора
9:59 УПРАЖНЕНИЕ 2: отключение активного маршрутизатора
10:23 УПРАЖНЕНИЕ 3: отключение кворума
10:53 Восстановление и то, чего не может сделать HA
11:23 Далее: многорегиональный PostgreSQL
ДЕТАЛИ ПРОИЗВОДСТВА
Узлы: db1-db3 запускают PostgreSQL, Patroni и PgBouncer. etcd1-etcd3 обеспечивают кворум из двух узлов. lb1-lb2 запускают HAProxy и Keepalived. VIP-маршруты записывают данные на порт 5000 и читают на порт 5001.
Рассматриваются важные настройки: ttl, loop_wait, retry_timeout, maximum_lag_on_failover, watchdog safety_margin, synchronous_mode quorum, synchronous_node_count, max_slot_wal_keep_size, проверки HAProxy /primary и пулинг транзакций PgBouncer.
Три распространённые ошибки:
1. wal_keep_size не ограничивает WAL, сохраняемый слотом репликации; max_slot_wal_keep_size ограничивает.
2. default_pool_size задаётся для каждой пары пользователь/база данных, а не является глобальным ограничением PgBouncer.
3. При переключении на резервный сервер роль основного сервера смещается, а не существующие клиентские сокеты — приложениям по-прежнему необходима логика переподключения и повторных попыток.
🔔 Подпишитесь на обучающие видео по PostgreSQL для производственной среды:
https://www.youtube.com/@DrIbrarAhmed...
#PostgreSQL #Patroni #HighAvailability #etcd #HAProxy
Продолжайте изучать PostgreSQL
Связанный плейлист (Оптимизация производительности): • PostgreSQL Database Performance Tuning
Начните здесь - Дорожная карта DBA на 2026 год: • PostgreSQL Database DBA Roadmap | Start Here
Подпишитесь на еженедельные обновления по PostgreSQL для производственной среды:
https://www.youtube.com/@DrIbrarAhmed...
#PostgreSQL #PostgreSQLPerformance #EXPLAINANALYZE #PostgreSQLDBA