Релиз ProGate 1.3.0: поддержка Shardman, отказоустойчивость и улучшения безопасности

Postgres Professional представляет обновление платформы миграции и репликации данных — Postgres ProGate 1.3.0. Ключевые темы релиза: полноценная поддержка Postgres Pro Shardman в качестве приёмника с маршрутизацией по шардам, режим высокой доступности для prosync и комплекс улучшений безопасности.

Поддержка Postgres Pro Shardman в качестве приёмника

В релизе 1.3.0 появилась полноценная поддержка Postgres Pro Shardman как целевой СУБД — теперь она доступна как для разового переноса данных с помощью утилиты procopy, так и для непрерывной репликации через prosync.

Ключевое нововведение — маршрутизация строк по шардам: данные из таблицы-источника можно распределять между конкретными сегментами Shardman-кластера с помощью условий фильтрации, задаваемых в параметре dst_shard_filter_mapping. Например, строки можно разбить по остатку от деления числового поля на количество шардов (mod(ID, 2) = 0), направив каждую группу в соответствующий сегмент. Это позволяет гибко управлять распределением нагрузки уже на этапе миграции.

При работе с Shardman-источником prosync автоматически создаёт отдельные слоты репликации для глобальных таблиц и для шардированных/локальных таблиц в каждом сегменте, обеспечивая корректное разграничение потоков данных.

Режим высокой доступности для prosync

prosync — утилита для CDC-репликации (Change Data Capture) — получила поддержку отказоустойчивого режима запуска. В нём несколько экземпляров prosync с одинаковой конфигурацией образуют кластер: один узел выполняет роль лидера, остальные находятся в резерве.

Механика отказоустойчивости:

  • хартбиты — лидер каждые 5 секунд обновляет метку leader_last_heartbeat в служебной БД;

  • детектирование отказа — резервный узел следит за таблицей prosync_ha_cluster_transfer_locks. Если лидер не обновлял хартбит дольше допустимого порога (heartbeat_period × heartbeat_max_errors), узел считается отказавшим;

  • перехват лидерства — резервный узел атомарно захватывает лидерство через UPDATE ... SET leader_uuid = @self WHERE leader_uuid IS NULL и продолжает репликацию с той точки, на которой остановился предыдущий лидер.

Для запуска в отказоустойчивом режиме команде prosync run передаётся флаг --ha. Мониторинг всех узлов кластера доступен через таблицы prosync_ha_cluster_nodes и prosync_ha_cluster_transfer_locks в служебной БД.

Стратегия разрешения конфликтов в prosync

В prosync добавлен параметр prosync_options.conflict_resolve_strategy, управляющий поведением при конфликтах первичного ключа при вставке строк в приёмник:

  • nothing — конфликтующая строка игнорируется (ON CONFLICT DO NOTHING);

  • update — строка обновляется значениями из источника (ON CONFLICT ... DO UPDATE);

  • fail — вставка выполняется без обработки конфликта, при его возникновении репликация завершается ошибкой.

Расширение поддержки источников

Список поддерживаемых СУБД-источников пополнился Oracle 11g. Теперь в procopy и prosync поддерживаются Oracle версий 11g, 12c, 18c и 19c. Дополнительно исправлены ошибки при миграции из Oracle Real Application Clusters (RAC) и при обратной миграции PostgreSQL → Oracle.

Улучшения безопасности

В этом релизе проведён комплекс мер по укреплению безопасности платформы.

Серверная часть:

  • минимальная длина пароля увеличена до 10 символов; число попыток ввода пароля ограничено четырьмя;

  • добавлена валидация email: его указание обязательно при создании и редактировании пользователя;

  • добавлены события безопасности в журнал аудита: logout и удаление пользователя;

  • после смены пароля пользователя администратором система потребует от пользователя смены пароля при следующем входе.

procheck:

  • добавлены аутентификация и события безопасности.

Другие улучшения

  • в утилите procheck автоматическое определение кодировок баз источника и приёмника для предотвращения расхождений данных; исправлено аварийное завершение при отсутствии геотипов Oracle; исправлена ошибка сравнения пользовательских типов (segmentation violation); исправлена обработка скрытых столбцов для типов XML и геометрии;

  • добавлена поддержка регистрозависимых идентификаторов на уровне сервера и клиента;

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

  • утилита procopy теперь выводит все ошибки маппинга сразу, а не останавливается на первой найденной — это упрощает диагностику конфигурации;

  • добавлены переключатели для работы с пустым паролем при редактировании подключений PostgreSQL и Oracle; добавлена возможность обновить подключение без повторного ввода пароля.

Обновление Postgres ProGate 1.3.0 уже доступно для установки. Подробная документация по переходу и описание всех изменений представлены по ссылке:

https://postgrespro.ru/docs/progate/current

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев