Postgres Professional выпускает Postgres ProGate 1.5.0 — обновление решения для миграции и репликации данных. Главными новшествами версии стали поддержка аналитической СУБД Postgres Pro AXE 2.0, перенос табличного маппинга на сторону сервера, пятикратное ускорение подготовки трансферов и существенное расширение сценариев работы с Oracle и PostgreSQL.
ProGate — решение для бесшовного гетерогенного переноса данных между различными СУБД (Oracle, PostgreSQL, Postgres Pro, Shardman, AXE), состоящее из трёх ключевых компонентов: procopy (высокоскоростная первичная загрузка), prosync (CDC-репликация изменений) и procheck (верификация консистентности данных). Управление всеми компонентами доступно через CLI и веб-интерфейс.
Новые возможности procopy
Утилита первичной загрузки данных получила поддержку новых целевых систем и более гибкое управление отказоустойчивостью:
добавлена поддержка СУБД Oracle в качестве приёмника данных в procopy, теперь Oracle можно использовать целевой системой не только при репликации изменений в prosync, но и при первичной загрузке (включая символьные, числовые, временные типы, а также BLOB, CLOB, NCLOB, LONG и LONG RAW);
реализована поддержка аналитической СУБД Postgres Pro AXE 2.0 в качестве приёмника;
добавлен параметр
--stop-on-errorкомандыprocopy loadдля принудительной остановки процесса загрузки при первой ошибке вместо пропуска проблемных строк;реализован механизм контролируемых повторных попыток отправки пакетов при потере соединения с приёмником (
procopy_options.load_max_retries), исключающий зависание утилиты при сетевых сбоях;появилась возможность отключать таймаут запросов к базе данных при установке значения
0для параметраprocopy_options.inprogress_timeout.
Развитие CDC-репликации в prosync
Компонент непрерывной репликации получил поддержку новых архитектурных топологий, расширенную диагностику и оптимизацию работы с высоконагруженными кластерами:
реализовано чтение изменений из физических резервных БД (physical standby) и нижестоящих баз данных Oracle, открытых в режиме «только чтение» (
prosync_options.oracle_logminer_downstream);добавлена поддержка двунаправленной репликации (multi-master) между двумя главными узлами PostgreSQL / Postgres Pro (версии 16 и выше) с использованием
replication originsдля предотвращения зацикливания изменений;появился параметр
--start-lsnкомандыprosync init, позволяющий создавать слот логической репликации «в прошлом» (с указанного LSN) для одноузловых инсталляций, BiHA-кластеров и Postgres Pro Shardman при наличии расширенияpgpro_logical_slot;расширено управление слотами и публикациями: добавлена возможность задавать пользовательские имена слотов и публикаций, а также создавать только публикацию без слота флагом
--publication-only;оптимизирована работа с Oracle RAC и чтением распределённых транзакций: фоновые транзакции (PMON, DBW, ARCH и др.) теперь пропускаются в LogMiner по умолчанию, добавлен флаг
--from-timeдля старта репликации по времени вместо SCN и параметр--skip-missing-archive-logsдля обхода отсутствующих архивных журналов;добавлена группа параметров
prosync_options.ha_clusterдля тонкой настройки отказоустойчивого режима работы (контроль состояния, таймауты, переподключения к БД и перезапуск потоков);реализована встроенная ротация журналов (секция
logging), служебный режим запуска (--service) с периодической записью статистики в лог;расширена статистика в TUI-интерфейсе: добавлены метрики
Bytes lagиTime lagдля экспорта из Oracle, счётчики операций для источников PostgreSQL и индикация состоянийActive,Write,Wait.
Серверная часть и пятикратное ускорение интроспекции
В бэкенде ProGate 1.5.0 переработана архитектура подготовки задач и управления метаданными:
реализовано серверное сопоставление (mapping) таблиц: автоматическое сопоставление, интеграция в службу трансферов и миграция существующих задач на новую модель;
за счёт оптимизации асинхронной интроспекции баз данных время подготовки трансферов сократилось в 5 раз;
добавлена поддержка интроспекции и валидации для Postgres Pro AXE 2.0, а также предварительная проверка доступности подключений к базам источника и приёмника.
Обновления интерфейса
Работа с масштабными схемами данных в GUI стала нагляднее и быстрее:
процесс создания и редактирования задачи разделён на два логических шага: настройку формы задачи и работу с таблицей сопоставления;
страница маппинга переведена на серверную пагинацию с предзагрузкой соседних страниц: добавлены кнопка «Автосопоставление», черновик ручного маппинга, поиск по подстроке, серверные фильтры по статусу и счётчики («Выделено», «Ошибки», «Готово к переносу»);
появилась возможность задавать параметры трансфера на уровне отдельных таблиц и скрывать или отображать системные схемы;
в SQL-редакторе улучшено автодополнение имён таблиц после
FROMиJOIN, а также автоматическое экранирование кавычками имён с точками;на странице детализации трансфера разделены вкладки «Задачи» и «Журнал событий», а подключения, не удовлетворяющие требованиям
procopy/prosync, автоматически блокируются для выбора.
Усиление безопасности
В новой версии ограничена частота запросов с одного IP-адреса к конечным точкам аутентификации и обновления токена. Для cookie сеанса добавлены атрибуты Partitioned, Secure и SameSite, реализована отправка заголовков HSTS.
Из конфигурации исключено значение по умолчанию для секрета подписи токенов доступа PROGATE_AUTH_ACCESS_TOKEN_SECRET. Обновлены Go и сторонние библиотеки, устранены уязвимости зависимостей.
Особенности обновления
Важно: при обновлении трансферы с устаревшими группами табличных задач без идентификатора схемы возвращаются в статус «Черновик». Их активные группы задач и задачи, включая задачи типа «SQL-запрос», удаляются. После обновления для таких трансферов необходимо заново создать группы задач и выполнить сопоставление таблиц. Трансферы, содержащие только задачи типа «SQL-запрос», сохраняются.
Документация по установке, настройке и использованию Postgres ProGate 1.5.0 доступна по ссылке:

Комментарии 0