В Postgres Pro Standard и Enterprise отказоустойчивость уже встроена: BiHA — это часть самой СУБД. Не «реплика плюс набор внешних компонентов», как в опенсорсной PostgreSQL, а кластер Postgres Pro с физической репликацией, автоматическим и ручным переключением узлов, механизмом выборов и восстановлением узлов после сбоя.
Что такое BiHA и когда применяется
Встроенная отказоустойчивость (Built-in High Availability, BiHA) — это комплексное решение Postgres Pro, которое управляется расширением biha и утилитой bihactl. Доработки ядра, SQL-интерфейс и служебный процесс biha-background-worker, координирующий узлы кластера, превращают кластер Postgres Pro в BiHA-кластер с физической репликацией и встроенным аварийным переключением узлов, отказоустойчивостью и автоматическим восстановлением после отказа.
В основе BiHA — архитектура с узлом-лидером (Leader), доступным для чтения и записи, и узлами-последователями (Followers), открытыми только на чтение. Последователи получают от лидера WAL через физическую потоковую репликацию. В случае отказа лидера последователи автоматически определяют нового лидера с помощью механизма выборов.