Документация 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 работает на каждом сервере, и ему задан индекс этого сервера.
Когда с Primary пропадает связь, pgfailover на первом по порядку сервере,
где работает Standby, переводит его в Primary.
Индекс текущего сервера задается переменной окружения PGFAILOVER_INDEX, начиная с 0.
Перевод в Primary выполняется путём вызова SQL-функции pg_promote() и может быть
отключён установкой PGFAILOVER_DISABLE_PROMOTION=true.
Экземпляры pgfailover должны иметь одинаковый список серверов PostgreSQL
и уникальные номера без пропусков.
Пример для первого сервера (индекс 0):
export PGFAILOVER_INDEX=0
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Пример для второго сервера (индекс 1):
export PGFAILOVER_INDEX=1
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