Глава 27. Встроенная отказоустойчивость (BiHA)

Содержание

27.1. Архитектура
27.1.1. Конфигурация Postgres Pro
27.1.2. Варианты конфигурации кластера
27.1.3. Выборы
27.1.4. Узел-рефери в BiHA-кластере
27.1.5. Геораспределённость и катастрофоустойчивость
27.2. Подготовка BiHA-кластера
27.2.1. Предварительные требования и особенности
27.2.2. Настройка аутентификации пользователей
27.2.3. Подготовка BiHA-кластера с нуля
27.2.4. Подготовка BiHA-кластера из существующего кластера с потоковой репликацией
27.2.5. Подготовка BiHA-кластера из существующего экземпляра СУБД
27.2.6. Подготовка узла-рефери в BiHA-кластере
27.2.7. Подготовка BiHA-кластера с proxima
27.2.8. Подготовка многоуровневого геораспределённого и катастрофоустойчивого кластера BiHA (GDBiHA)
27.2.9. Настройка SSL для служебных подключений (необязательно)
27.2.10. Использование «‎‎магической» строки (необязательно)
27.3. Администрирование
27.3.1. Изменение состава кластера
27.3.2. Изменение конфигурационных параметров
27.3.3. Ручное переключение узлов
27.3.4. Управление SSL для служебных подключений
27.3.5. Роли
27.3.6. Использование сервисного режима
27.3.7. Автоматическая синхронизация кластера после аварийного переключения
27.3.8. Восстановление узла из состояния NODE_ERROR
27.3.9. Механизм защиты от зависания
27.3.10. Настройка репликации
27.3.11. Протоколирование
27.3.12. Функции-обработчики
27.3.13. Управление расширением proxima
27.3.14. Восстановление из резервной копии
27.3.15. Обновление и миграция
27.3.16. Выключение расширения biha
27.3.17. Удаление расширения biha
27.4. Справка по расширению biha
27.4.1. Параметры конфигурации
27.4.2. Функции
27.4.3. Представления
27.5. Справка по утилите bihactl

Встроенная отказоустойчивость (Built-in High Availability, BiHA) — это комплексное решение Postgres Pro Enterprise, которое управляется расширением biha и утилитой bihactl. В сочетании с доработками ядра, SQL-интерфейсом и служебным процессом biha-background-worker, координирующим узлы кластера, BiHA превращает кластер Postgres Pro в BiHA-кластер — кластер с физической репликацией и встроенным аварийным переключением узлов, отказоустойчивостью и автоматическим восстановлением после отказа узлов.

По сравнению с существующими кластерными решениями — стандартным кластером PostgreSQL конструкции ведущий-ведомый и кластером, настроенным при помощи multimaster, — BiHA-кластер отличается следующими преимуществами:

  • Физическая репликация.

  • Выделенный узел-лидер, доступный для чтения и записи, и узлы-последователи, доступные только для чтения.

  • Встроенное аварийное переключение с возможностью автоматического выявления отказа узлов, реагирования и последующего изменения конфигурации кластера с помощью выборов.

  • Узел-рефери для предотвращения проблемы разделения кластера (split brain).

  • Переключение узлов вручную.

  • Автоматическая синхронизация.

  • Синхронная и асинхронная репликация узлов.

  • Каскадная репликация.

  • Многоуровневая геораспределённость и катастрофоустойчивость.

  • Механизм защиты от зависания.

  • Не требуется стороннее кластерное программное обеспечение.

Chapter 27. Built-in High Availability (BiHA)

Table of Contents

27.1. Architecture
27.1.1. Postgres Pro Configuration
27.1.2. Variants of Cluster Configuration
27.1.3. Elections
27.1.4. The Referee Node in the BiHA Cluster
27.1.5. Geographical Distribution and Disaster Resilience
27.2. Setting Up a BiHA Cluster
27.2.1. Prerequisites and Considerations
27.2.2. User Authentication Configuration
27.2.3. Setting Up a BiHA Cluster from Scratch
27.2.4. Setting Up a BiHA Cluster from the Existing Cluster with Streaming Replication
27.2.5. Setting Up a BiHA Cluster from the Existing Instance
27.2.6. Setting Up the Referee Node in the BiHA Cluster
27.2.7. Setting Up a BiHA Cluster with proxima
27.2.8. Setting Up a Multi-Level Geo-Distributed and Disaster-Resilient BiHA Cluster
27.2.9. Configuring SSL for Service Connections (Optional)
27.2.10. Using the Magic String (Optional)
27.3. Administration
27.3.1. Changing Cluster Composition
27.3.2. Changing Configuration Parameters
27.3.3. Manual Switchover
27.3.4. Managing SSL for Service Connections
27.3.5. Roles
27.3.6. Using the Service Mode
27.3.7. Automatic Cluster Synchronization after Failover
27.3.8. Restoring the Node from the NODE_ERROR State
27.3.9. Hanging Prevention Mechanism
27.3.10. Replication Configuration
27.3.11. Logging
27.3.12. Callbacks
27.3.13. Managing proxima
27.3.14. Recovering from a Backup
27.3.15. Upgrade and Migration
27.3.16. Disabling biha
27.3.17. Removing biha
27.4. Reference for the biha Extension
27.4.1. Configuration Parameters
27.4.2. Functions
27.4.3. Views
27.5. Reference for the bihactl Utility

Built-in High Availability (BiHA) is a complex Postgres Pro Enterprise solution managed by the biha extension and the bihactl utility. Together with a set of core patches, SQL interface, and the biha-background-worker process, which coordinates the cluster nodes, BiHA turns a Postgres Pro cluster into a BiHA cluster — a cluster with physical replication and built-in failover, high availability, and automatic node failure recovery.

As compared to existing cluster solutions, i.e. a standard PostgreSQL primary-standby cluster and a cluster configured with multimaster, the BiHA cluster offers the following benefits:

  • Physical replication.

  • Dedicated leader node available for read and write transactions and read-only follower nodes.

  • Built-in failover including capabilities of automatic node failure detection, response, and subsequent cluster reconfiguration by means of elections.

  • Referee node to avoid split-brain issues.

  • Manual switchover.

  • Autorewind capabilities.

  • Synchronous and asynchronous node replication.

  • Cascading replication.

  • Multi-level geographical distribution and disaster resilience.

  • Hanging prevention mechanism.

  • No additional external cluster software required.

FAQ