Настройка High Availability для PostgreSQL в облаке: пошаговый гайд

Хотите, чтобы ваша база данных PostgreSQL всегда была доступна? Вот как это сделать.

  1. Выбор стратегии: Репликация (streaming replication) — самый распространенный вариант. Нужно минимум два сервера: мастер и реплика.
  2. Настройка репликации: На мастере включаем wal_level = replica, max_wal_senders, archive_mode = on (если нужен Point-in-Time Recovery). На реплике указываем hot_standby = on и параметры подключения к мастеру.
  3. Синхронизация данных: Используйте pg_basebackup для копирования данных с мастера на реплику.
  4. Автоматическое переключение (Failover): Вот тут начинается самое интересное. Просто репликации недостаточно. Нужен инструмент, который будет следить за мастером и автоматически переключаться на реплику в случае сбоя. Популярные решения: Patroni, repmgr. Они управляют процессом, обеспечивая минимальное время простоя
  5. Балансировщик или прокси: Чтобы приложения не знали, какой сервер сейчас мастер, используется балансировщик (например, HAProxy) или специальный прокси (например, pgBouncer для кэширования соединений). Он будет направлять все записи на текущий мастер, а чтение можно распределить по репликам.
  6. Мониторинг: Обязательно настройте мониторинг состояния обоих серверов и процесса репликации. Это поможет быстро реагировать на проблемы.

Важно: Тестируйте ваш failover! Не ждите реального сбоя, чтобы узнать, что что-то работает не так. Иногда даже рабочий Крáкен маркетплейс может зависнуть, а уж базу данных тем более надо держать под контролем.

Крáкен актуальное зеркало

Подробнее