Документация pgfailover
pgfailover наблюдает за состоянием кластера PostgreSQL и выступает для клиентов
как TCP-прокси к текущему Primary. При смене Primary
pgfailover разрывает соединения с клиентами, и они должны переподключиться.
Параметры подключения задаются через переменные окружения с префиксом PGFAILOVER_:
export PGFAILOVER_BIND_ADDRESS=":5432"
export PGFAILOVER_SERVERS="postgres://repuser@pg0.example.com/database?sslmode=disable&connect_timeout=5 postgres://repuser@pg1.example.com/database?sslmode=disable&connect_timeout=5"
./pgfailoverРоль сервера (Primary/Standby) проверяется pg_is_in_recovery()
по умолчанию раз в 5 секунд (PGFAILOVER_INTERVAL), количество попыток подключения
регулируется переменной PGFAILOVER_ATTEMPTS (по умолчанию 1).
pgfailover может автоматически переводить локальный PostgreSQL в Primary.
Адрес локальной БД задаётся переменной окружения PGFAILOVER_PROMOTION_ADDRESS
и должен совпадать с хостом одной из записей PGFAILOVER_SERVERS.
Когда с Primary пропадает связь, pgfailover переводит в Primary первый
по порядку Standby в PGFAILOVER_SERVERS. Если PGFAILOVER_PROMOTION_ADDRESS
не задан, перевод в Primary отключён.
Перевод в Primary выполняется путём вызова SQL-функции pg_promote().
Все экземпляры pgfailover должны иметь одинаковый список серверов PostgreSQL.
Пример для первого сервера:
export PGFAILOVER_PROMOTION_ADDRESS=pg0.example.com
export PGFAILOVER_SERVERS="postgres://repuser@pg0.example.com/database?sslmode=disable&connect_timeout=5 postgres://repuser@pg1.example.com/database?sslmode=disable&connect_timeout=5"
./pgfailoverПример для второго сервера:
export PGFAILOVER_PROMOTION_ADDRESS=pg1.example.com
export PGFAILOVER_SERVERS="postgres://repuser@pg0.example.com/database?sslmode=disable&connect_timeout=5 postgres://repuser@pg1.example.com/database?sslmode=disable&connect_timeout=5"
./pgfailoverПохожие статьи
- Внутреннее отказоустойчивое хранилище
- Гибридные схемы внедрения
- Кластерная терминология
- Graphite на отдельном сервере
- Внешнее отказоустойчивое хранилище
- Доступ к интерфейсу Grafana
- Изменение конфигурационных параметров ClickHouse
- Изоляция ядер для оптимизации производительности
- Использование единого Graphite для нескольких кластеров MITIGATOR
- Настройка времени хранения метрик в Graphite