Перейти к содержимому

Высокая доступность 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