Новости

Импортозамещение системы передачи отчётности "Дельта"

2025-07-01 16:11
Команда сопровождения банковских телекоммуникаций Национального расчетного депозитария (входит в Группу «Московская биржа») реализовала проект по импортозамещению одного из ключевых программных продуктов – системы передачи отчётности "Дельта".

"Дельта" представляет собой многопользовательскую систему, предназначенную для передачи отчетности в Банк России. Первоначально решение функционировало на серверах с ОС Windows в связке с базой данных Oracle.

После анализа инфраструктурной совместимости и консультаций с администраторами, было принято решение о переходе на серверы под управлением Astra Linux с использованием базы данных Postgres Pro, размещённой на кластерной архитектуре.

Первоначальный этап переноса был реализован в тестовой среде: развернута целевая конфигурация системы "Дельта", предназначенная для промышленного использования.

Само программное обеспечение переносится достаточно просто: достаточно скопировать конфигурационные файлы в новую инсталляцию на сервере Linux с соответствующими корректировками настроек подключения к базе данных. Установка Крипто-Про и утилиты Stunnel также осуществляется по стандартным сценариям.

Наибольшие сложности возникли при миграции с Oracle на Postgres Pro — требовалось сохранить полные данные и структуру базы, необходимую для корректного функционирования системы и её обновлений. Универсального механизма перехода между этими СУБД не существует, поэтому процесс занял несколько итераций до достижения приемлемого результата.

Для выполнения миграции использовалась open-source-утилита Ora2Pg. Основные трудности касались корректного сопоставления типов данных и адаптации конструкций, которые могли нарушаться при переносе. В итоге было принято решение переносить таблицы в заранее подготовленные схемы, создаваемые системой при первоначальном запуске.

Корректно были перенесены следующие таблицы:

  • UNCLE_CORE.databasechangelog → public.databasechangelog
  • UNCLE_CORE.databasechangeloglock → public.databasechangeloglock
  • DATA_NSI → delta_ko_nsi
  • DATA_ELO → delta_ko_psd

Из схемы UNCLE_CORE были перенесены только необходимые таблицы, содержащие данные отчетов и упаковок: report, tpkg_in, tpkg_in_file, tpkg_out, tpkg_out_file. Эти таблицы были размещены в целевой схеме uncle_core. Остальные необходимые параметры были добавлены вручную.

Завершающий этап включал:

  • Очистку значений md5sum в таблице public.databasechangelog (автоматически заполняются при запуске ПО)
  • Обновление путей в таблицах отчётности (замена символа \ на /)
  • Установка корректных значений последовательностей <таблица>_id_seq на последний id в таблицах report, tpkg_in, tpkg_out и других

В результате сформирована база данных, идентичная той, что создаётся "Дельтой" при инициализации на PostgreSQL, с полным сохранением исторических данных из Oracle.

Подготовка и тестирование заняли несколько месяцев. Промышленная миграция была успешно завершена в ноябре 2024 года.

Текущий статус:

С начала 2025 года система "Дельта" работает на полностью импортозамещённом технологическом стеке. По итогам двух кварталов опытно-промышленной эксплуатации — с учётом регулярных обновлений ПО — сбоев и ошибок зафиксировано не было, что подтверждает стабильность и качество проделанной работы.

Вывод:

Импортозамещение критически важных ИТ-систем требует усилий и времени. При наличии аналогичной задачи рекомендуется использовать представленные наработки — это позволит значительно ускорить процесс и избежать типичных ошибок.