postgresql. - code-r.ru fileРеализация ha-решений & load balancing...

20
Обеспечение высокой доступности на основе PostgreSQL. Сценарии использования.

Upload: others

Post on 22-Oct-2019

31 views

Category:

Documents


0 download

TRANSCRIPT

Обеспечение высокой

доступности на основе

PostgreSQL.

Сценарии

использования.

Немного истории

• 1973 год – Ingres

• 1986 год – Postgres (Post Ingres)

• 1995 год – Postgres95Майкл Стоунбрейкер

Высокая доступность (HA)

• Мастер – чтение / запись

• Реплика – иногда чтение / запись

• Высокая доступность – возможность избегать простоев

• RTO (Recovery Time Objective)

• RPO (Recovery Point Objective)

• RTO + RPO = Tier

HA в PostgreSQL

• Общие диски

• Репликация на уровне файловой системы

• Репликация триггерами

• Репликация в среднем слое

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

• Логическая репликация

Виды репликаций

• Физическая с версии 9.0 • Логическая с версии 10.0

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

Способы доставки WAL

• Потоковая репликация

TCP

Способы доставки WAL

• Доставка из архива

Проблемы

• Потеря WAL сегментов (решение: replication slot)

• Отмена запросов (решение: hot_standby_feedback, max_standby_streaming_delay)

Физическая репликация. Плюсы -минусы

Масштабируемость и простота настройки

Реализация HA-решений & Load balancing

Разнообразие конфигураций (отложенная, hot-,

warm standby, каскадная репликация)

Зависимость от версий, платформы

Реплицируется всё

Реплику можно только читать

Физическая репликация - кейсы

• Реплика для обеспечения HA

• Балансировка нагрузки

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

• Отложенная репликация

Логическая репликация• Встроенная доступна с версии 10

• Модель «Публикация» – «Подписчик»

Логическая репликация - одни плюсы. Плюс ограничения

Нет версионной и платформенной зависимости

Выборочная репликация

Возможность обновления мажорных версий

Реплицируются только DML (insert / update /delete) операции

Реплицируются только таблицы

Ручное разрешение конфликтов

Логическая репликация - кейсы

• Консолидация данных

• Обновление версий

• Репликация мультимастер (пока не поддерживается)

Кластера. Ожидания от кластера

• Высокая доступность. Минимальные RPO / RTO

• Масштабируемость

• Согласованность данных

• Отказоустойчивость

• Отказ узла

• Разделение сети

• Splitbrain

Кластера. Внешние решения

Необходимые компоненты:

• Агент

• Управляющие

• Единая точка входа

Внешние решения. Stolonhttps://github.com/sorintlab/stolon

Внешние решения. Patronihttps://github.com/zalando/patroni

Развитие

PostgreSQL 9 PostgreSQL 10 PostgreSQL 11 PostgreSQL 12

Физическая

репликация

Логическая

репликацияМультимастер?Логическая

репликация +

Вопросы?