Установка и сопровождение
Редакции и возможности
16
Авторские права
© Postgres Professional, 2023–2026
Авторы: Алексей Береснев, Илья Баштанов, Павел Толмачев, Игорь
Гнатюк
Фото: Олег Бартунов (монастырь Пху и пик Бхрикути, Непал)
Использование материалов курса
Некоммерческое использование материалов курса (презентации,
демонстрации) разрешается без ограничений. Коммерческое
использование возможно только с письменного разрешения компании
Postgres Professional. Запрещается внесение изменений в материалы
курса.
Обратная связь
Отзывы, замечания и предложения направляйте по адресу:
edu@postgrespro.ru
Отказ от ответственности
Компания Postgres Professional не несет никакой ответственности за
любые повреждения и убытки, включая потерю дохода, нанесенные
прямым или непрямым, специальным или случайным использованием
материалов курса. Компания Postgres Professional не предоставляет
каких-либо гарантий на материалы курса. Материалы курса
предоставляются на основе принципа «как есть» и компания Postgres
Professional не обязана предоставлять сопровождение, поддержку,
обновления, расширения и изменения.
2
Темы
Продукты Postgres Professional и редакции Postgres Pro
Возможности Postgres Pro Enterprise
3
Продукты и редакции
Редакции Postgres Pro
Лицензионная политика
Другие продукты Postgres Professional
4
Редакции Postgres Pro
Standard
Certified
Enterprise
Enterprise Certified
Postgres Pro поставляется в различных редакциях.
Standard — доработанная версия базового PostgreSQL с рядом
дополнительных расширений. Подходит для клиентов, которых
устраивают базовые возможности, но которым необходимо решение,
зарегистрированное в Реестре российского программного обеспечения,
а также техподдержка:
Enterprise — существенно доработанная версия PostgreSQL
c функциональностью, предназначенной для высоконагруженных
систем в больших компаниях:
Обе редакции имеют сертифицированные ФСТЭК версии, которые
могут применяться на объектах критической информационной
инфраструктуры, в государственных информационных системах,
а также в системах хранения и обработки персональных данных
и конфиденциальной информации:
Начиная с версии 15, ОС Windows не поддерживается Postgres Pro,
но компания собирает дистрибутив обычного PostgreSQL под Windows.
В этом курсе, если не указано иное, мы рассматриваем возможности
Postgres Pro Enterprise.
5
Лицензионная политика
Лицензирование по количеству ядер
в стоимость лицензии входит годовая техническая поддержка
бесплатные академические лицензии для образовательных организаций
Для 1С возможно лицензирование по количеству серверов
и пользователей
Postgres Pro лицензируется по количеству ядер. В стоимость лицензии
входит один год технической поддержки.
Все редакции Postgres Pro поддерживают работу с 1С: в состав входят
все необходимые расширения (fasttrun, fulleq, mchar, online_analyze),
а ядро включает оптимизации производительности (например,
временные таблицы не требуют ввода-вывода, пока помещаются
в отведенной оперативной памяти).
При использовании Postgres Pro для работы с 1С можно выбрать
другую модель лицензирования — по количеству серверов и
пользователей.
Образовательным организациям бесплатно предоставляются
академические лицензии на Postgres Pro Standard и Postgres Pro
Enterprise. Такие лицензии позволяют использовать СУБД не только для
обучения, научных исследований и студенческих конкурсов, но и для
административных задач. Они не ограничены по времени, но не
включают техническую поддержку.
Дополнительно в компании можно заказать услуги технической
поддержки, миграции, аудита информационных систем:
Подробную информацию по стоимости, срокам лицензии и по вопросам
предоставления услуг можно получить, написав на sales@postgrespro.ru
6
Другие продукты
Postgres Pro Enterprise Manager
интегрированная панель управления
централизованный интерфейс мониторинга и администрирования
Postgres Pro Backup Enterprise
утилита резервного копирования и восстановления pg_probackup
Postgres Pro Shardman
распределенная отказоустойчивая СУБД с ACID-гарантиями
горизонтальное масштабирование по чтению и записи
Тема 2. Postgres Pro
Enterprise Manager
Темы 18–20
Кроме СУБД Postgres Pro, компания Postgres Professional предлагает
ряд других продуктов.
Postgres Pro Enterprise Manager — интегрированная административная
панель управления для Postgres Pro Enterprise. Предоставляет
централизованный интерфейс мониторинга и управления СУБД.
Postgres Pro Backup Enterprise — утилита pg_probackup для управления
резервным копированием и восстановлением кластеров баз данных
PostgreSQL. Утилита работает с обычным PostgreSQL и со всеми
редакциями Postgres Pro, но в сочетании с Postgres Pro Enterprise
поддерживает CFS и размещение резервных копий в S3-хранилище.
Утилита входит в состав Postgres Pro Enterprise и рассматривается
в этом курсе.
Postgres Pro Shardman — распределенная объектно-реляционная
СУБД на основе PostgreSQL c дополнительными изменениями
и расширениями. Shardman совместим с Postgres Pro Enterprise
и использует многие ее возможности (в том числе 64-битные номера
транзакций, сбор статистики, аудит, CFS, обеспечение высокой
доступности другие).
7
Установка и миграция
Автоматическая настройка параметров
при инициализации кластера
запуск pgpro_tune по умолчанию
Упрощение миграции с Oracle
реализация пакетов
oracle_fdw — обертка сторонних данных
orafce — популярные функции системных пакетов Oracle
ora2pgpro — автоматизация миграции
Тема 3.
Установка, настройка,
обновление
Тема 4. Миграция
При инициализации кластера Postgres Pro Enterprise по умолчанию
выполняется его дополнительная настройка, зависящая от
конфигурации оборудования. Для этого запускается утилита pgpro_tune,
которая собирает информацию о системе и дописывает в файл
конфигурации необходимые параметры.
Для облегчения миграции с Oracle в Postgres Pro Enterprise реализован
функционал пакетов Oracle и добавлены расширения:
●
oracle_fdw — обертка сторонних данных для Oracle;
●
orafce — распространенные функции из пакетов Oracle;
●
ora2pgpro — утилита конвертации кода и переноса объектов из
Oracle.
8
Планировщик заданий
pgpro_scheduler — встроенный планировщик заданий
разовые и планируемые задания
позволяет обойтись без средств операционной системы
Тема 5. Планировщик
заданий
Расширение pgpro_scheduler — интегрированный в Postgres Pro
Enterprise планировщик заданий. С его помощью можно задавать
сложные расписания, динамически вычислять время следующего
запуска для повторяющихся заданий, выполнять SQL-команды задания
в одной или в нескольких последовательных транзакциях, назначать
задания для немедленного или отложенного однократного выполнения
одновременно с обычными планируемыми заданиями.
9
Данные
Сжатая файловая система
Расширения и утилиты для данных
Диагностика и исправление повреждений данных
Работа с данными в памяти
10
CFS — Compressed File System
включается для отдельных табличных пространств
позволяет сжать данные в несколько раз
сокращает объем дискового ввода-вывода
измененные страницы записываются последовательно
Сжатая файловая система
Тема 6. CFS — сжатая
файловая система
Использование сжатой файловой системы (Compressed File System,
CFS) позволяет сократить объем дискового ввода-вывода за счет
хранения сжатых блоков данных и улучшить кучность хранения за счет
последовательной записи сжатых блоков в конец файла на диске.
Механизм CFS включается на уровне отдельных табличных
пространств.
Как правило, сжатие позволяет уменьшить объем хранимых данных
в несколько раз.
11
Хранение данных
TOAST для системного каталога
для столбцов со списками управления доступом
pg_transfer
быстрое перемещение таблиц между серверами
pg_repack
устранение раздувания таблиц и индексов
Таблицы системного каталога, содержащие потенциально длинные
списки управления доступом (Access Control List), такие как pg_class
и pg_attribute, могут использовать TOAST.
С помощью расширения pg_transfer можно специальным образом
подготовить таблицу, содержащую много данных, и затем быстро
переместить ее на другой экземпляр Postgres Pro простым
копированием файлов данных. Расширение выполняет необходимые
для этого корректировки системного каталога.
В Postgres Pro Enterprise включена сторонняя утилита pg_repack,
которая позволяет избавиться от раздувания таблиц и индексов без
установки исключительной блокировки на все время работы, как того
требует команда VACUUM FULL.
12
Повреждения данных
amcheck
контроль целостности
добавлена проверка уникальности индексов
pg_filedump
низкоуровневый просмотр файлов данных
Просмотр всех версий строк
функция pg_snapshot_any для отключения правил видимости
Postgres Pro Enterprise включает дополнительные средства для
контроля целостности, отладки и исследования поврежденных данных.
Штатное расширение amcheck, позволяющее проверять целостность
данных, доработано для проверки ограничений уникальности
в B-деревьях.
Утилита pg_filedump выводит содержимое файлов таблиц и индексов,
а также управляющего файла в отформатированном виде. Это может
быть полезно для исправления поврежденных данных.
Функция pg_snapshot_any выводит все версии строк таблицы, отключая
правила видимости.
13
Данные в памяти
pg_variables
переменные в памяти сеанса
in_memory
небольшие таблицы в общей памяти
Тема 7.
Транзакции
и сеансы
Расширение pg_variables позволяет работать с переменными
различных типов (скалярными, массивами и коллекциями) в памяти
сеанса.
С помощью расширения in_memory можно размещать небольшие
таблицы в общей памяти сервера. Работа с таблицей происходит
с помощью обертки сторонних данных.
Оба расширения можно рассматривать как альтернативу временным
таблицам.
14
Производительность
Управление транзакциями и сеансами
Выполнение и оптимизация запросов
Анализ нагрузки и мониторинг
15
Транзакции и сеансы
64-разрядный счетчик транзакций
Автономные транзакции
Встроенный пул соединений
сохраняет контекст сеанса
Тема 7.
Транзакции
и сеансы
32-битные идентификаторы транзакций в PostgreSQL создают
проблемы с обслуживанием переполнения счетчика транзакций.
в нагруженных системах. В Postgres Pro Enterprise используются
64-битные идентификаторы, упрощающие администрирование.
Автономные транзакции позволяют зафиксировать или откатить часть
операторов независимо от статуса основной транзакции.
В обычном режиме работы сервера каждое подключение
обслуживается отдельным процессом, что уменьшает эффективность
совместной работы. В Postgres Pro Enterprise реализован встроенный
пул соединений, сохраняющий окружения сеансов.
16
Сеансы и подключения
pgbouncer — сторонний пул соединений
Параметры libpq для подключения к разным серверам
hostorder, failover_timeout
Отключение сеансов и переподключение
reusepass
Функции для изменения параметров других сеансов
pg_backend_set_config, pg_backend_load_library
Помимо встроенного пула соединений, в Postgres Pro включен
сторонний пул соединений pgbouncer. Работа с pgbouncer с точки
зрения разработчика приложений рассматривается в курсе DEV2.
Доработанный протокол libpq позволяет распределять сеансы по
нескольким серверам:
●
hostorder — порядок подключения к серверам (sequential/random);
●
failover_timeout — максимальное время для циклического
переподключения к узлам, указанным в строке соединения.
Дополнительный конфигурационный параметр reusepass —
разрешается ли использовать запрошенный пароль при повторном
установлении подключения (запрет автоматического переподключения).
Добавлены функции pg_backend_set_config и pg_backend_load_library,
позволяющие менять параметры других сеансов и загружать в них
библиотеки.
17
Приоритизация ресурсов
pgpro_rp — расширение для приоритизации ресурсов
использование процессора
объем читаемых данных
объем записываемых данных
Сеансам можно назначать план приоритизации ресурсов
с помощью триггера входа во время создания сеанса
с помощью вызова функции
Планы приоритизации могут меняться в зависимости от
времени суток, дней недели и других факторов
В высоконагруженных системах возникает потребность неравномерного
распределения ограниченных ресурсов между сеансами. В обычной
версии PostgreSQL такого механизма нет.
В Postgres Pro Enterprise добавлено расширение pgpro_rp, с помощью
которого можно назначить сеансам приоритеты в отношении трех видов
ресурсов:
●
использование процессора;
●
объем чтения (страницы локального и общего кешей);
●
объем записи (страницы локального и общего кешей).
С помощью расширения можно создать план приоритизации ресурсов
и назначить его роли либо во время входа в сеанс, либо с помощью
специальной функции.
Планы могут быть как постоянными, так и зависеть от времени суток,
дней недели и других подобных факторов.
Расширение pgpro_rp в своей работе использует механизм
приоритизации ресурсов, добавленный в ядро Postgres Pro Enterprise
18
Оптимизация запросов
dump_stat — перенос статистики планировщика
pg_query_state — состояние выполняющегося запроса
pg_hint_plan — указания оптимизатору
plantuner — запрет определенных индексов
Тема 8.
Оптимизация
запросов
Расширение dump_stat позволяет после восстановления из логической
копии обойтись без выполнения команды ANALYZE для всего кластера,
что для больших БД может значительно сократить время простоя.
Расширение pg_query_state позволяет узнать текущее состояние
выполнения запросов.
Расширение pg_hint_plan позволяет управлять планом выполнения
запроса с помощью специальных указаний.
Расширение plantuner позволяет скрывать определенные индексы от
планировщика, не удаляя их.
19
AQO — адаптивная оптимизация запросов
накопление статистики выполнений и коррекция прогноза
кардинальности
Перепланирование запросов в реальном времени
прерывание выполнения запроса и запуск повторного планирования
pgpro_multiplan — сохранение планов запросов
использование планов без повторной оптимизации идентичных запросов
Тема 11. Сохранение
планов запросов
Оптимизация запросов
Тема 10.
Перепланирование
Тема 9. Адаптивная
оптимизация
Расширение AQO (Adaptive Query Optimization) используется для
адаптивной оптимизации запросов за счет коррекции прогноза
кардинальности с учетом накопленной статистики выполнения
запросов.
Перепланирование запросов в реальном времени позволяет прервать
запрос, который выполняется слишком долго или требует слишком
много ресурсов, и выполнить его повторно с новым планом, который
учитывает полученную информацию.
Расширение pgpro_multiplan позволяет сохранять планы запросов
и использовать их для идентичных запросов без повторного
планирования.
20
Планировщик запросов
Удаление замкнутых соединений из планов
enable_self_join_removal
Оптимизированы планы с пустыми узлами Materialize
Уточнение стоимости последовательного сканирования
seq_scan_startup_cost_first_row = off
Уточнение селективности соединений по нескольким
условиям при наличии расширенной статистики
enable_compound_index_stats = on
Уменьшено потребление памяти планировщиком
в запросах с большими массивами
Имеется возможность удаления замкнутых соединений из планов
запросов, что может увеличить скорость выполнения (параметр
enable_self_join_removal). Полезно для систем с автоматически
генерируемыми запросами.
Улучшена производительность в случаях, когда в плане возникает
много пустых узлов Materialize, которые ничего не возвращают.
Параметр seq_scan_startup_cost_first_row увеличивает начальную
стоимость последовательного сканирования. В обычном PostgreSQL эта
величина всегда равную нулю, за счет чего планировщик может иногда
предпочесть последовательное сканирование доступу по индексу для
получения одной строки по первичному ключу.
При включенном параметре enable_compound_index_stats оптимизатор
использует составные индексы для уточнения оценки селективности
соединения по нескольким атрибутам, не составляющим внешний ключ
(в PostgreSQL в этом случае перемножаются селективности по
отдельным колонкам).
Добавлена оптимизация, которая уменьшает потребление памяти
планировщиком на запросах, содержащих большие массивы
(например, IN для проверки вхождения значения в массив).
21
Выполнение запросов
Управление объемом кеша для подготовленных операторов
plan_cache_lru_memsize, plan_cache_lru_size
Режим автоподготовки операторов
autoprepare _threshold, autoprepare_limit, autoprepare_memory_limit
Поиск ближайших соседей для B-tree
Ускорено сканирование только индекса для больших таблиц
vops — векторные операции для OLAP-запросов
Параметрами plan_cache_lru_memsize и plan_cache_lru_size можно
ограничить объем памяти, занимаемый подготовленными операторами.
Это может помочь, если приложение создает слишком много
подготовленных операторов.
Добавлен режим автоподготовки операторов (отключен по умолчанию),
в котором часто используемые операторы неявно подготавливаются.
Может давать преимущество в тех случаях, когда явные команды
PREPARE не работают, например, когда применяется pgbouncer.
В индексах B-tree реализована поддержка алгоритма k-NN – поиска
ближайших соседей – при сортировке по расстоянию. В обычном
PostgreSQL для этого приходится пользоваться расширением btree_gist
– так сортировка работает гораздо медленнее.
Увеличен размер кеша карты видимости, что позволяет сканированию
только индекса быстрее работать с таблицами больше 256 Мбайт.
Экспериментальное расширение vops (vectorized operations) позволяет
ускорять запросы OLAP с фильтрацией и агрегированием благодаря
колоночному хранению внутри страниц («паркет») и использованию
векторных операций.
22
Блокировки
Оптимизация механизма проверки взаимоблокировок
Очередь для разделяемых легких блокировок
lwlock_shared_limit = 0
Разделение таблицы блокировок на секции
log2_num_lock_partitions = 4
Уменьшена конкуренция при расширении файлов B-tree
Одновременная проверка ситуации взаимоблокировки многими
процессами (что может произойти на нагруженных системах с большим
количеством ядер) вызывает замедление работы сервера вплоть до
полной остановки. В Postgres Pro проверка ограничена одним
процессом в один момент времени.
Для улучшения работы с легкими блокировками имеется параметр
lwlock_shared_limit. Он задает количество разделяемых блокировок, по
достижении которого запускается «справедливый» режим ожидания —
последующие блокировки добавляются в очередь. В этом случае
устраняется возможность бесконечного откладывания исключительных
блокировок, что важно при большой конкуренции за ресурс.
Для повышения параллелизма таблица блокировок разделяется на
несколько секций. Количество секций всегда является степенью двойки,
поэтому задается показатель степени. В PostgreSQL он всегда равен 4,
то есть таблица делится на 16 секций. В Postgres Pro Enterprise
показатель можно задать параметром log2_num_lock_partitions, если
при большой конкуренции значения по умолчанию не хватает.
Уменьшена конкуренция при расширении файлов B-tree: к файлу
добавляется сразу несколько страниц, как при расширении таблицы.
23
Буферный кеш
Более эффективная работа с горячими страницами индексов
Оптимизация для NUMA-архитектур
Уменьшена конкуренция за хеш-таблицу
1024 отдельно блокируемых секций
Улучшен менеджер буферного кеша:
●
устранено узкое место, возникающее при обращении к горячим
страницам индексов при высокой конкуренции;
●
изменена внутренняя реализация хеш-таблицы буферного кеша для
более эффективной работы, в том числе на NUMA-архитектурах;
●
сама хеш-таблица буферного кеша разделена на 1024 секции
(в PostgreSQL — 128) для снижения конкуренции на многоядерных
системах.
24
Поиск в тексте и в json
Метод доступа RUM
фразовый поиск и ранжирование
pg_tsparser — альтернативный анализатор
Hunspell — словари для ряда языков
shared_ispell — размещение словарей в общей памяти
JsQuery — язык запросов к данным jsonb
поиск во вложенных объектах и массивах
операторы сравнения с индексной поддержкой
Для улучшения полнотекстового поиска добавлен метод доступа RUM,
который похож на GIN, но поддерживает фразовый поиск и выдачу
ранжированных результатов.
Расширение pg_tsparser изменяет стандартную стратегию разбора
текста для слов, включающих подчеркивания, цифры и буквы, а также
для слов, разделенных знаком минуса. Оно удобно, в частности, для
поиска в коде.
Расширение Hunspell предоставляет возможность использовать
популярные словари Hunspell для разных языков.
В отличии от стандартной реализации словарей ispell, расширение
shared_ispell позволяет разместить словарь в общей памяти.
Расширение JsQuery предоставляет язык запросов для поиска
в значениях типа jsonb. С добавлением в PostgreSQL поддержки
стандарта SQL/JSON потеряло актуальность, но сохраняется для
совместимости.
25
Анализ нагрузки
pgpro_stats — статистика выполнения
развитие pg_stat_statements
pgpro_pwr — выявление ресурсоемких
операций: выборки и отчеты
развитие pg_profile
Тема 12. Анализ
производительности
Тема 13. Отчеты по
нагрузке pgpro_pwr
Расширение pgpro_stats позволяет собрать статистику планирования
и выполнения SQL-операторов. Основано на pg_stat_statements.
Pgpro_pwr накапливает статистические выборки (полученные на основе
других расширений и результатов работы сборщика статистики),
анализирует их и строит отчеты о нагрузке.
26
Анализ нагрузки
pg_wait_sampling — семплирование событий ожидания
auto_explain — добавлено время планирования
pg_waldump — добавлен вывод времени
Определение объема сгенерированных WAL-записей
pgBadger — поддержка формата журнала Postgres Pro
Mamonsu — агент мониторинга для Zabbix
pgbench — учет ошибок сериализации и взаимоблокировок
Расширение pg_wait_sampling семплирует события ожидания.
Расширение подробно рассматривается в курсе DBA2.
В auto_explain добавлено отображение длительности планирования.
В pg_waldump добавлен вывод времени для различных типов
журнальных записей.
Представление pgpro_stat_wal_activity отображает объем
сгенерированных каждым процессом записей WAL.
Добавлено стороннее расширение pgBadger, адаптированное для
корректной работы с Postgres Pro.
Добавлен Mamonsu — агент мониторинга Postgres Pro для Zabbix:
В pgbench скорректирован учет ошибок сериализации и
взаимоблокировок.
27
Безопасность
Профили, аудит, данные
Сертификация ФСТЭК
28
Профили, аудит, данные
passwordcheck — запрет простых паролей
Профили пользователя
парольные политики и ограничения
pg_proaudit — аудит действий пользователей
Защищенная схема — ограничение прав
администраторов
Анонимизация данных — изменение представления
исходного набора данных
Тема 14. Профили
пользователей
Тема 15. Аудит
Тема 16.
Защищенная схема
Тема 17.
Анонимизация
данных
Расширение passwordcheck запрещает использование простых
паролей.
Профили пользователей ограничивают использование системы,
в частности, реализуют парольные политики.
Расширение pg_proaudit позволяет проводить аудит действий
пользователей.
Рекомендуемые организационно-технические мероприятия по
разграничению прав между привилегированными пользователями
СУБД позволят повысить безопасность работы с Postgres Pro.
Разграничение прав доступа в ряде случаев не сможет обеспечить
полную безопасность данных. В таких ситуациях можно использовать
анонимизацию — сохранение конфиденциальности путем изменения
представления исходного набора данных.
29
Сертификация ФСТЭК
Очистка удаленных данных
на диске и в оперативной памяти
Контроль целостности файлов
Работа с персональными данными и конфиденциальной информацией
требует использования сертифицированной редакции Postgres Pro
Enterprise Certified. Для этой редакции сделано несколько изменений,
которые отсутствуют и в несертифицированной Postgres Pro Enterprise.
Чтобы не допустить возможности восстановления удаленных данных,
освобождаемые области памяти автоматически заполняются нулевыми
байтами — как на диске, так и в оперативной памяти.
Утилита pg_integrity_check проверяет контрольные суммы
отслеживаемых файлов — исполняемых, конфигурационных, таблиц
системного каталога — и блокирует доступ пользователей к базе
данных в случае обнаружения несанкционированных изменений.
30
Резервное копирование
pg_probackup — система резервного копирования
и восстановления
централизованный каталог копий
политики хранения
инкрементальное копирование
многопоточность
ptrack
механизм для получения измененных страниц данных
Темы 18, 19 и 20.
Резервное копирование
pg_probackup — система резервного копирования и восстановления
кластеров баз данных PostgreSQL и Postgres Pro.
Утилита поддерживает каталог резервных копий, позволяя настраивать
политики хранения.
Реализованы различные виды инкрементального копирования,
многопоточность и другие возможности.
Механизм PTRACK позволяет в определенных случаях значительно
ускорить инкрементальное копирование, сообщая утилите номера
блоков данных, измененных после предыдущего копирования.
31
Отказоустойчивые решения
Доработки физической репликации
Синхронный кластер multimaster
Отказоустойчивый кластер BiHA
32
Репликация
Нестрогая синхронная репликация
ограничение отставания реплики
synchronous_standby_gap = 0
Автоматическое исправление поврежденных страниц
страницы запрашиваются с резервного сервера
page_repair = off
Восстановление поврежденных записей WAL
walsender может прочитать запись из буфера в оперативной памяти
wal_sender_check_crc = off
Нестрогая синхронная репликация позволяет временно перевести
синхронную реплику в асинхронный режим при значительном
отставании.
При чтении страницы с неверной контрольной суммой основной сервер
может запросить эту страницу с резервного сервера и автоматически
восстановить ее.
Процесс walsender может восстановить поврежденную запись WAL из
буферов оперативной памяти.
33
Отказоустойчивость
multimaster — синхронный кластер без разделения ресурсов
все узлы ведущие
распределенные транзакции
отказоустойчивость и высокая доступность
масштабирование читающей нагрузки
Отказоустойчивый кластер BiHA
кластер с физической репликацией
отказоустойчивость и высокая доступность
масштабирование читающей нагрузки
Тема 21.
Кластер multimaster
Тема 22.
Кластер BiHA
Расширение multimaster позволяет настроить синхронный кластер,
в котором любой узел может принимать запросы как на чтение, так
и на запись.
Встроенный менеджер глобальных транзакций позволяет работать
с кластером как с монолитной базой, гарантируя обычные свойства
ACID. Протокол фиксации на основе кворума обеспечивает
отказоустойчивость и высокую доступность кластера.
Расширение BiHA позволяет организовать отказоустойчивый кластер,
где изменения данных обрабатывает узел-лидер, а затем с помощью
механизма физической репликации эти изменения распространяются
на узлы-последователи. Последователи доступны только для чтения.
Оба расширения обеспечивают отказоустойчивость за счет
автоматического выявления отказа узлов и изменения конфигурации
кластера, что означает автоматическое переключение узлов и
синхронизацию данных на вернувшихся в строй узлах.
Также оба расширения обеспечивают масштабируемость читающих
транзакций.
34
Итоги
Postgres Pro Enterprise содержит разнообразные
дополнительные возможности
изменения в коде ядра PostgreSQL
дополнительные расширения
улучшения сторонних расширений
Основные возможности детально рассматриваются в курсе