Импортозамещение СУБД ГИС ГМП с Oracle RAC на шардированную СУБД
- Заказчик:
- Федеральное казначейство
- Руководитель проекта со стороны заказчика
- Поставщик
- Postgres Professional
- Год завершения проекта
- 2025
- Сроки выполнения проекта
- август, 2023 — июнь, 2025
- Масштаб проекта
- 48000 автоматизированных рабочих мест
- Цели
Государственная информационная система о государственных и муниципальных платежах (ГИС ГМП) предназначена для централизованного размещения и получения информации, необходимой для уплаты государственных и муниципальных услуг, пошлин, штрафов и налогов. Система обеспечивает взаимодействие «администраторов начислений» (ведомств, формирующих счета) и финансовых организаций (банков, через которые граждане и юридические лица производят оплату в бюджет).
Ядром ГИС ГМП до недавнего времени являлась СУБД Oracle, размещенная на импортной инфраструктуре. Общий объем базы данных достигал 240 терабайт, из которых 180 терабайт приходилось на пользовательские данные и около 60 терабайт — на индексы. Ключевая задача проекта заключалась в переводе ГИС ГМП на российский технологический стек, включая ПО и инфраструктуру, в рамках программы импортозамещения. При этом требовалось обеспечить работу системы федерального значения без простоев и потери данных.
В результате проекта основной и резервный кластеры Oracle RAC (Real Application Cluster), всего четыре сервера, каждый содержал по 192 двухпоточных ядра и 3 Тб оперативной памяти, были полностью заменены на кластер Postgres Pro Shardman, включающий 40 серверов (19 мастеров, 19 реплик и 2 резервных узла по 56 ядер). Общий объем базы данных удалось сократить на 50 ТБ за счет оптимизации структуры и пересмотра накопленных данных. Производительность системы выросла, количество отказов существенно уменьшилось.
Одновременно были обновлены операционные системы и версии прикладного ПО в соответствии с требованиями ФСТЭК. Также обеспечена высокая отказоустойчивость и возможность горизонтального масштабирования до уровней, необходимых для работы государственных систем в дальнейшем.
Уникальность проекта
Летом 2025 года Федеральное казначейство завершило крупнейший проект импортозамещения зарубежного ПО, проведя миграцию огромной базы данных свыше 200 терабайт с СУБД Oracle, размещенной на мощных импортных серверах в RAC, на российскую распределенную СУБД с горизонтальным масштабированием Postgres Pro Shardman. Это единственная ныне известная миграция такого масштаба в федеральных ведомствах: наиболее распространенными на рынке являются миграции баз, не превышающих 5-10 терабайт.
Масштаб проекта (показатели назначения ГИС ГМП):
- Более 48000 зарегистрированных участников;
- до 5 млрд уведомлений о событиях с начислениями и платежами;
- Порядка 5000 обрабатываемых транзакций в секунду.
Система содержит информацию о начислениях и платежах, а также квитанции и зачисления практически по всем начислениям от администраторов доходов бюджета. Ранее считалось, что отечественные решения не подходят для управления такими крупными базами данных. Опыт Федерального казначейства доказал обратное.
- Использованное ПО
Реализован переход на кластер Postgres Pro Shardman, включающий 40 серверов (19 мастеров, 19 реплик и 2 резервных узла) с СУБД Oracle RAC(2 а мастера, 2 standby).
Программное обеспечение ГИС ГМП реализовано на платформе SmartVista Integration Platform (SVIP) и представляет собой набор бизнес-процессов нотации BPMN 2.0 с расширениями JavaScript для выполнения основных задач по обработке поступающих сообщений в транзакционной части и на ряда нативных приложений java для функционала АРМ. Взаимодействие подсистем прикладного программного обеспечения на базе SVIP выполняется через Apache Kafka.
- Сложность реализации
Проект требовал не только замены СУБД, но и глубокой адаптации архитектуры, данных и прикладного ПО. Одним из ключевых вызовов стал выбор ключа шардирования. Потребовалась серьезная работа по анализу данных, функциональности системы и потоков данных, по результатам которой в качестве ключа шардирования был выбран уникальный идентификатор начисления (УИН). Для реализации этого решения потребовалась модификация структуры базы данных.
Немаловажным было требование сохранения работоспособности системы в рамках коэффициента доступности в момент миграции и гарантированное сохранение целостности данных.
Готовые инструменты миграции, такие как Debezium и Oracle GoldenGate не подошли под специфику проекта, поэтому было разработано собственное решение, способное переносить данные с учетом новой схемы и происходящих в Oracle изменений данных. Перенос выполнялся методом, обеспечивающим целостность данных — фрагментами с фиксацией результатов в журнале.
- Описание проекта
Федеральное казначейство предъявляло жесткие требования к новой СУБД: поддержка критически больших объемов данных, горизонтальное масштабирование, отказоустойчивость, соответствие регуляторным требованиям и перспектива роста до петабайтного уровня. Выбор был сделан в пользу Postgres Pro Shardman — распределенной отечественной СУБД, способной обрабатывать данные объемом до 2 петабайт. Адаптацию прикладного ПО и интеграционной платформы SmartVista Integration Platform выполняла компания «БПС Инновационные программные решения». Адаптация включала в том числе и перенос имеющейся в Oracle части бизнес-логики из СУБД на уровень прикладного ПО. Миграцию баз данных осуществляла компания PTЛабс.
Процесс миграции состоял из несколько этапов:
1. Копирование накопленных данных и параллельный перенос изменений.
2. Параллельная работа систем на Oracle и Shardman: «параллельный импорт» входящих данных и поэтапное переключение запросов на обновленную версию с контролем производительности и корректности возвращаемых данных.
3. Фактический переход на новую СУБД при сохранении возможности возврата на старую версию в случае выявления проблем на завершающих этапах.
4. Вывод Oracle из эксплуатации.
Общая продолжительность проекта составила более двух лет, из них большая часть времени ушла на модификацию прикладного ПО для работы с распределенной СУБД и отладку процедуры переноса данных.
В части доработки прикладного ПО было реализовано переписывание сложных SQL-запросов, а в некоторых случаях — разделение сложных операций на несколько последовательных шагов для учета специфики распределенной среды.
Для оптимизации процедуры переноса данных было принято решение по изменению формата хранения части данных: решено избавиться от нескольких дочерних таблиц и превратить их во вложенные структуры данных в родительской таблице. Во время подготовки к миграции дополнительно выявлялись ошибки в накопленных за годы данных: некорректные форматы идентификаторов, расхождения в числовых полях, а также другие ошибки данных. Для обеспечения устойчивости были реализованы механизмы обработки и фиксации подобных случаев.
- География проекта
Территория Российской федерации