Сравнение решений высокой доступности для СУБД Postgres Pro

Функциональность

 

Postgres Pro BIHA

Postgres Pro Multimaster

Corosync/Pacemaker

Patroni

Область применения

Реляционная СУБД со встроенной отказоустойчивостью и катастрофоустойчивостью.

Реляционная СУБД со встроенной отказоустойчивостью.

 

Реляционная СУБД с отказоустойчивостью и катастрофоустойчивостью .

Реляционная СУБД с отказоустойчивостью и катастрофоустойчивостью .

Конфигурация узла кластера

Физический сервер или виртуальная машина.

Узел рефрери может использоваться для хранения WAL журналов.

Физический сервер или виртуальная машина.

Физический сервер или виртуальная машина.

Физический сервер или виртуальная машина.

Схемы построения

Узлы кластера могут располагаются на разных площадках.

Все узлы кластера располагаются на одной площадке.

Узлы кластера могут располагаются на разных площадках.

Узлы кластера могут располагаются на разных площадках.

Распределение нагрузки между узлами кластера

БД доступна в режиме чтения-записи на основном узле и в режиме только чтения на резервном узле.

БД доступна в режиме чтения-записи на всех узлах кластера.

БД доступна в режиме чтения-записи на основном узле и в режиме только чтения на резервном узле.

БД доступна в режиме чтения-записи на основном узле и в режиме только чтения на резервном узле.

Репликация

данных

Репликация блоков данных БД.

Реплицируются все БД экземпляра Postgres.

Репликация данных БД.

Синхронная репликация одной БД экземпляра Postgres.

Репликация блоков данных БД.

Реплицируются все БД экземпляра Postgres.

Репликация блоков данных БД.

Реплицируются все БД экземпляра Postgres.

Возможность создания узла рефрери без СУБД, для двух узловых конфигураций

Да, может использоваться как синхронное/асинхронной хранилище WAL журналов/

Да.

Да

Да

Необходимость использования внешнего устойчивого к сбоям хранилища ключ-значение (key-value)

Нет

Нет

Нет

Да

Администрирование

 

Postgres Pro BIHA

Postgres Pro Multimaster

Corosync/Pacemaker

Patroni

Автоматизация и время переключения

Переключение на резервный узел отказоустойчивого кластера выполняется автоматически, катастрофоустойчивого кластера вручную.

Время переключения на основе проведенных тестов: - switchover/failover ~ 10-15 секунд.

Switchover/failover как таковой не требуется, при отказе узла сразу переключаемся на следующий работоспособный узел.

Переключение на резервный узел отказоустойчивого кластера выполняется автоматически, катастрофоустойчивого кластера вручную.

Время переключения на основе проведенных тестов: - switchover/failover ~ 30-40 секунд

Переключение на резервный узел отказоустойчивого кластера выполняется автоматически, катастрофоустойчивого кластера вручную.

Время переключения на основе проведенных тестов: - switchover/failover ~ 30-40 секунд

Статус БД на узлах кластера

В любой момент времени известен статус БД на всех узлах кластера.

В любой момент времени известен статус БД на всех узлах кластера.

В любой момент времени известен статус БД на всех узлах кластера.

В любой момент времени известен статус БД на всех узлах кластера.

Unlogged объекты/операции

Необходимо использовать режим logged.

Необходимо использовать режим logged.

Необходимо использовать режим logged.

Необходимо использовать режим logged.

Установка обновлений БД

Требуется остановка БД.

Обновление минорных версий ПО СУБД и одиночных исправлений (patches) не требуют остановки БД.

Требуется остановка БД.

Требуется остановка БД.

Приложения

 

Postgres Pro BIHA

Postgres Pro Multimaster

Corosync/Pacemaker

Patroni

Единая точка подключения к кластеру БД из приложения может обеспечиваться:

- перечислением всех узлов кластера  в строке подключения  специального драйвера (libpq, jdbc,  odbc)

- балансировщиком нагрузки

- DNS

- перечисление всех узлов кластера  в строке  подключения через специальный драйвер (libpq, jdbc,  odbc)

- перечислением всех узлов кластера  в строке подключения  специального драйвера (libpq, jdbc,  odbc)

- балансировщиком нагрузки

- DNS

- использование виртуального IP-адрес

- перечислением всех узлов кластера  в строке подключения  специального драйвера (libpq, jdbc,  odbc)

- балансировщиком нагрузки

- DNS

- использование виртуального IP-адрес

Необходимость изменения кода приложения для использования HA решения

Нет

Да

Нет

Нет

Сеть

 

Postgres Pro BIHA

Postgres Pro Multimaster

Corosync/Pacemaker

Patroni

Сеть передачи данных

Необходимо LAN- соединение на  площадке и между площадками, с определённой пропускной способностью и временно́й задержкой для передачи изменений данных БД.

Необходимо LAN- соединение на площадкае, с определённой пропускной способностью и временно́й задержкой для передачи изменений данных БД.

Необходимо LAN- соединение на  площадке  и между площадками, с определённой пропускной способностью и временно́й задержкой для передачи изменений данных БД.

Необходимо LAN- соединение между площадками, с определённой пропускной способностью и временно́й задержкой для передачи изменений данных БД.

Требование к пропускной способности сети передачи данных

Определяется объемом изменений в системе, для оценки требуется тестирование.

Определяется объемом изменений в системе, для оценки требуется тестирование.

Определяется объемом изменений в системе, для оценки требуется тестирование.

Определяется объемом изменений в системе, для оценки требуется тестирование.

Требование к временно́й задержке сети передачи данных

Для оценки требуется тестирование. (*)

Для оценки требуется тестирование. (*)

Для оценки требуется тестирование. (*)

Для оценки требуется тестирование. (*)

Сетевое соединение на уровне L2 (Data Link Layer) между узлами кластера

Не требуется

Не требуется

Требуется

Не требуется

* - на основании практического опыта предварительная оценка максимального значения временно́й задержки в сети передачи данных ~5 мс

Аварийные сценарии

 

Postgres Pro BIHA

Postgres Pro Multimaster

Corosync/Pacemaker

Patroni

Сетевой сбой между узлами кластера или между площадками.

Используется встроенный механизм сетевых heartbeats для исключения узла/ узлов кластера из кластерной конфигурации.

Используется встроенный механизм сетевых heartbeats для исключения узла/ узлов кластера из кластерной конфигурации.

Для защиты от ‘split-brain’ используются Fencing Agents (механизм STONITH).

I/O Fencing может быть реализован с использованием устройств IPMI, PDU, UPS, LAN/SAN switch.

Для защиты от split-brain используются арбитры кластера и агенты Postgres.

Для Patroni - DCS, Patroni- агент, Patroni-bot (Postgres - агент).

Потеря БД на одном из узлов кластера.

Для восстановления БД на резервном узле кластера необходимо восстановление из последней резервной копии, применение всех необходимых журнальных файлов и синхронизация с основной БД.

Для восстановления БД на одном из узлов кластера необходимо восстановление из последней резервной копии, применение всех необходимых журнальных файлов и синхронизация с доступной БД.

Для восстановления БД на резервном узле кластера необходимо восстановление из последней резервной копии, применение всех необходимых журнальных файлов и синхронизация с основной БД.

Для восстановления БД на резервном узле кластера необходимо восстановление из последней резервной копии, применение всех необходимых журнальных файлов и синхронизация с основной БД.

Недоступность (сбой или установка обновлений) одного из узлов кластера.

Репликация данных останавливается. После восстановления резервного узла его БД автоматически или вручную синхронизируется с основной БД.

Репликация данных останавливается. После восстановления узла его БД автоматически или вручную синхронизируется с доступной БД.

 

Репликация данных останавливается. После восстановления резервного узла его БД автоматически или вручную синхронизируется с основной БД.

Репликация данных останавливается. После восстановления резервного узла его БД автоматически или вручную синхронизируется с основной БД.

Дополнительно

 

Postgres Pro BIHA

Postgres Pro Multimaster

Corosync/Pacemaker

Patroni

Поддержка ОС

Linux

Linux

Linux

Linux и Windows.

Поддержка версии

Postgres

16 и выше

9-16

9-16

9-16

Лицензирование

Postgres Pro Enterprise

(лицензии/поддержка)

Postgres Pro Enterprise

(лицензии/поддержка)

Postgres Pro Enterprise (лицензии/поддержка) или Postgres Pro Standard (лицензии/поддержка) или PostgreSQL (поддержка)

+

Corosync / Pacemaker (поддержка)

Postgres Pro Enterprise (лицензии/поддержка) или Postgres Pro Standard (лицензии/поддержка) или PostgreSQL (поддержка)

+

Patroni (поддержка)

 

Описание решения

Описание решения

Описание решения

Описание решения