Migsoft
0

Миграция с Oracle на PostgreSQL: план, инструменты, цена

Миграция с Oracle на PostgreSQL — не прыжок в неизвестность, а управляемый проект с типовыми этапами: аудит, конвертация схемы и кода, перенос данных, тестирование, параллельная эксплуатация. Главное решение принимается в самом начале: переносить на бесплатный PostgreSQL или на Postgres Pro Enterprise, где привычная Oracle-специфика — пакеты PL/SQL, UTL_HTTP, DBMS_LOB — работает штатно.

Виталий Куренков
Менеджер Мигсофт: подбор и поставка российского ПО для юрлиц и госкомпаний
14 августа 2026 · 8 минут чтения · Обновлено 4 октября
Содержание

Oracle и MS SQL в российских компаниях продолжают работать — но продлевать поддержку напрямую больше нельзя, а каждая новая ИТ-система на них увеличивает будущий объём переноса. Поэтому миграция с Oracle на PostgreSQL из «когда-нибудь» превратилась в плановый проект: у неё есть отработанный жизненный цикл, зрелые инструменты автоматизации и понятная экономика. Эта статья — план такого проекта глазами заказчика, а не инженера: что чем заменяется, из каких этапов состоит переход, где съедается больше всего времени и денег и сколько стоят лицензии целевой СУБД.

Чем заменить Oracle-специфику: короткий ответ

Самая дорогая часть миграции — не данные, а хранимая логика: пакеты PL/SQL, системные пакеты, работа с большими объектами. Именно здесь решается выбор целевой СУБД. Ниже — соответствия по официальной матрице возможностей Postgres Pro:

Что используется в Oracle Ванильный PostgreSQL Postgres Pro Enterprise
Пакеты PL/SQL Нет — код раскладывается по схемам и переписывается Пакеты PL/pgSQL: CREATE PACKAGE, глобальные переменные, приватные подпрограммы
Системные пакеты UTL_HTTP, UTL_MAIL, UTL_SMTP Нет Встроенные utl_http, utl_mail, utl_smtp — API почти полностью совпадает с Oracle
DBMS_APPLICATION_INFO Нет Расширение pgpro_application_info: метрики сессий в представлениях v$session и v$session_longops
DBMS_LOB и внешние файлы BFILE Пакета нет; свои Large Objects с другим API Пакет dbms_lob, внешние файлы pgpro_bfile, хранилище Superfile для больших объектов
Коллекции и ассоциативные массивы Массивы, код переписывается вручную Коллекции в pg_variables и автоматический экспорт коллекций Oracle
Хинты планировщика Нет pg_hint_plan — указания планировщику в SQL-комментариях
Oracle ILM: вытеснение редких данных на дешёвые диски Нет pgpro_ilm
Автоматическая конвертация кода Свободная утилита ora2pg ora2pgpro 2.0 — транспилятор с полным разбором кода

Если из левой колонки в вашей системе используются только данные и простые процедуры — читайте раздел про ванильный PostgreSQL: возможно, платить вообще не придётся.

Почему компании переносят базы с Oracle и MS SQL

Причины у всех одни и те же, и паники среди них нет — только арифметика рисков.

Поддержка. Oracle и Microsoft приостановили работу в России: прямые контракты на поддержку и обновления не продлеваются. Критичная СУБД без патчей безопасности — риск, который с каждым годом дорожает.

Регуляторика. Госсектору, госкомпаниям и субъектам КИИ нужен софт из реестра российского ПО — подробно о требованиях к значимым объектам мы писали в статье о КИИ и 187-ФЗ. Postgres Pro в реестре, у сертифицированных редакций есть сертификат ФСТЭК.

Технологическая близость. PostgreSQL — классическая реляционная СУБД, близкая к Oracle по архитектуре и методам работы, с большим числом успешных проектов миграции. Из всех вариантов замены этот — с наименьшим расстоянием переноса. Как Postgres Pro выглядит на фоне других российских СУБД — в сравнении российских СУБД.

Этапы миграции с Oracle на PostgreSQL

Жизненный цикл проекта, который вендор использует в собственных проектах миграции, состоит из семи этапов.

Семь этапов миграции базы данных с Oracle на PostgreSQL: аудит, оценка, конвертация, перенос, тестирование, переключение и сопровождение
Планируйте перенос кода и проверку приложения вместе с переносом данных.
  1. Выбор приложения и аудит. Мигрируют не «всё сразу», а по информационным системам — первой обычно берут некритичную. Аудит отвечает на вопросы: сколько строк PL/SQL, какие системные пакеты задействованы, кто и как подключается к базе.
  2. Оценка трудозатрат. По результатам аудита считается бюджет и выбирается целевая СУБД — здесь же становится видно, окупит ли Oracle-совместимость Enterprise сокращение ручной работы.
  3. Конвертация схемы и кода. Таблицы, индексы, представления и хранимая логика переводятся в синтаксис PostgreSQL — руками или транспилятором ora2pgpro.
  4. Перенос и синхронизация данных. Самая предсказуемая часть проекта. В ora2pgpro есть проверка корректности: данные исходной таблицы Oracle сопоставляются с результатом в Postgres Pro, материализованные представления переносятся снимками.
  5. Тестирование. Функциональное и нагрузочное: сверяются результаты запросов, планы выполнения и время отклика под боевой нагрузкой.
  6. Переход в промышленную эксплуатацию. Обычно через период параллельной работы двух СУБД с синхронизацией данных и коротким окном переключения.
  7. Оптимизация и сопровождение. PostgreSQL настраивается иначе, чем Oracle: тюнинг планов, автовакуум, мониторинг.

Честная оценка: дольше всего длятся конвертация логики и тестирование. Перенос данных, которого обычно боятся, — быстрая и хорошо автоматизированная часть.

Перенос логики PL/SQL: где теряют время

Свободная утилита ora2pg переносит схему и грубо конвертирует код, но с конструкциями Oracle справляется частично: результат для пакетов и коллекций приходится дописывать вручную — а это тысячи строк.

В Postgres Pro Enterprise на этот случай есть два инструмента. Первый — транспилятор ora2pgpro 2.0 в составе СУБД: в отличие от ora2pg, он строит полное дерево разбора исходного PL/SQL-кода и генерирует работоспособный PL/pgSQL, включая пакеты, коллекции и автономные транзакции. Второй — сами пакеты в PL/pgSQL: CREATE PACKAGE, функция инициализации, глобальные переменные, приватные подпрограммы. Приложению не нужно менять обращения вида имя_пакета.функция() — структура кода сохраняется, а не размазывается по схемам.

Отдельный случай — логика, завязанная на системные пакеты: отправка почты из СУБД (UTL_MAIL, UTL_SMTP), HTTP-вызовы (UTL_HTTP), инструментирование длительных операций (DBMS_APPLICATION_INFO), работа с большими объектами (DBMS_LOB, BFILE). На ванильном PostgreSQL всё это выносится из базы в приложение — по сути, отдельный проект разработки. В Enterprise эти пакеты встроены, и их API почти полностью совпадает с Oracle.

Где теряют время при миграции с Oracle

Этапы одни и те же — разница в том, сколько ручной работы остаётся на переносе логики.

Ванильный PostgreSQL

В базе много PL/SQL и системных пакетов, целевая СУБД — бесплатный PostgreSQL.

  1. Аудит сколько PL/SQL и пакетов

    Аудит отвечает на вопросы: сколько строк PL/SQL, какие системные пакеты задействованы, кто и как подключается к базе.

  2. Схема и код ora2pg справляется частично

    Свободная утилита ora2pg переносит схему и грубо конвертирует код. Пакеты и коллекции приходится дописывать вручную — а это тысячи строк.

  3. Системные пакеты уходят в приложение

    Отправка почты, HTTP-вызовы, работа с большими объектами (UTL_MAIL, UTL_HTTP, DBMS_LOB) на ванильном PostgreSQL выносятся из базы в приложение — по сути, отдельный проект разработки.

  4. Перенос данных быстрая часть

    Самая предсказуемая и хорошо автоматизированная часть проекта — та, которой обычно боятся.

  5. Тестирование дольше всего

    Функциональное и нагрузочное: сверяются результаты запросов, планы выполнения и время отклика под боевой нагрузкой. Вместе с конвертацией логики — самый долгий этап.

  6. Переключение параллельная работа двух СУБД короткое окно переключения в промышленную эксплуатацию

    Обычно через период параллельной работы двух СУБД с синхронизацией данных и коротким окном переключения.

Каждый пакет PL/SQL переписывается вручную, а системные пакеты становятся отдельным проектом. Бесплатный PostgreSQL оправдан, когда системные пакеты не используются и команда готова сама сопровождать СУБД. Итог — в конце сценария

Postgres Pro Enterprise

Та же база, целевая СУБД с совместимостью с Oracle-спецификой.

  1. Аудит сколько PL/SQL и пакетов

    По результатам аудита считается бюджет — здесь же видно, окупит ли Oracle-совместимость Enterprise сокращение ручной работы.

  2. Схема и код ora2pgpro: полный разбор

    Транспилятор строит полное дерево разбора PL/SQL и генерирует работоспособный PL/pgSQL, включая пакеты, коллекции и автономные транзакции.

  3. Системные пакеты встроены в СУБД

    utl_http, utl_mail, utl_smtp, пакет dbms_lob встроены в Enterprise, и их API почти полностью совпадает с Oracle.

  4. Перенос данных со сверкой таблиц

    В ora2pgpro есть проверка корректности: данные исходной таблицы Oracle сопоставляются с результатом в Postgres Pro.

  5. Тестирование под боевой нагрузкой

    Сверяются результаты запросов, планы выполнения и время отклика — этот этап остаётся при любой целевой СУБД.

  6. Переключение параллельная работа двух СУБД короткое окно переключения в промышленную эксплуатацию

    Обычно через период параллельной работы двух СУБД с синхронизацией данных и коротким окном переключения.

Вместо ручного переписывания пакетов — работа транспилятора плюс проверка. Приложению не нужно менять обращения к пакетам. Итог — в конце сценария

Схема упрощена: аудит и оценка трудозатрат объединены, сопровождение после перехода не показано.

Ванильный PostgreSQL или Postgres Pro Enterprise

Бесплатного PostgreSQL достаточно, если бизнес-логика живёт в приложении, а не в базе: PL/SQL-кода мало, системные пакеты не используются, команда готова сама сопровождать СУБД и собирать отказоустойчивость из открытых компонентов. В этом случае честный ответ — платить не за что: берите ванильный PostgreSQL, этапы проекта не изменятся.

Enterprise оправдан, когда в базе накоплена серьёзная логика: каждый пакет PL/SQL на ванили — ручное переписывание, а на Enterprise — работа транспилятора плюс проверка. И когда СУБД критична: нужны кластер, сжатие, инструменты мониторинга и вендор, который отвечает за результат поддержкой с жёстким SLA. Чем редакции отличаются между собой и от бесплатной сборки — в обзоре Postgres Pro и PostgreSQL.

Товар Postgres Pro Enterprise от 358 172 ₽ Смотреть →

Если система переросла один сервер, у вендора есть распределённая СУБД Postgres Pro Shardman — горизонтальное масштабирование на десятки узлов:

Товар Postgres Pro Shardman от 146 255 ₽ Смотреть →

Миграция с MS SQL: два разных случая

База 1С. Перенос информационной базы 1С с MS SQL (или Oracle) на Postgres Pro выполняется только средствами платформы 1С: выгрузка в dt-файл и загрузка в пустую базу, перенос без промежуточного файла командой ibcmd infobase replicate --target-dbms=PostgreSQL либо механизм распределённых информационных баз. Первоначальную загрузку ускоряют настройками кластера: max_parallel_maintenance_workers — до половины ядер сервера, автовакуум на время загрузки отключают и затем возвращают. Подробно про выбор СУБД под 1С — в статье PostgreSQL для 1С.

Собственная система на MS SQL. Этапы те же, что и для Oracle: аудит, конвертация схемы, перенос данных, тестирование. Отличие — в переносе логики: T-SQL переводится в PL/pgSQL, и объём этой работы оценивается на аудите так же, как объём PL/SQL.

Сколько стоят лицензии Postgres Pro Enterprise

Postgres Pro Enterprise лицензируется по ядрам процессора — физическим ядрам сервера или vCPU виртуальной машины. Правила простые, но их легко посчитать неправильно:

  • лицензия бессрочная и включает год гарантийного обслуживания; минимум на одну установку — 2 ядра;
  • цена за одно ядро x86-64 — 716 344 ₽, вариант с расширенной гарантией 3 года — 988 557 ₽;
  • в отказоустойчивых конфигурациях лицензируются все серверы кластера и все реплики, синхронные и асинхронные; голосующий узел-арбитр BiHA лицензии не требует;
  • пример: продуктив на 8 ядер плюс реплика на 8 ядер — это 16 лицензий по цене ядра.

Тестовый контур на время миграции покупать не нужно: правила лицензирования Postgres Pro разрешают развернуть одну тестовую среду и одну среду разработки без дополнительных лицензий — каждая по мощности не больше купленного продуктива.

Поддержка сверх гарантийного года оформляется сертификатом технической поддержки на 1–5 лет. SLA вендора при действующем сертификате: реакция на заявку — от 15 минут в режиме 24×7, решение критичной проблемы — 4 часа, исправление ошибки в коде — 24 часа.

Лицензия СУБД Postgres Pro Enterprise на 1 ядро x86-64
Рекомендуем в статье Лицензия СУБД Postgres Pro Enterprise на 1 ядро x86-64
PPE-86-LIC
716 344 ₽ НДС не облагается (ст. 149 НК РФ) — позиция в реестре российского ПО
В корзине Подробнее →

Как купить на юрлицо

Мигсофт поставляет Postgres Pro организациям: счёт в рублях по безналу, договор, закрывающие документы, комплект для тендера. Postgres Pro Enterprise включён в Единый реестр российского ПО, поэтому лицензии не облагаются НДС; сертификаты технической поддержки идут отдельной строкой с НДС 22 % — в счёте это разведено сразу, бухгалтерии ничего не нужно пересчитывать.

Документы для тендера
КП с печатью, счёт, УПД, номера реестра в спецификации.
Сверка совместимости
Проверим вашу конфигурацию по базе вендора до оплаты — бесплатно.

Пришлём расчёт лицензий под вашу конфигурацию — бесплатно, в течение рабочего дня. Лицензирование по ядрам с репликами и виртуализацией — то место, где ошибка всплывает на приёмке. Напишите, сколько серверов, ядер и реплик в целевой схеме, — вернём точный расчёт и спецификацию для закупки.

Частые вопросы

Сколько длится миграция с Oracle на PostgreSQL? +

Срок определяется на аудите — первом этапе проекта — и зависит в основном от объёма хранимой логики и требований к тестированию. Перенос данных — быстрая часть; дольше всего длятся конвертация PL/SQL и проверка системы под нагрузкой. Транспилятор ora2pgpro сокращает именно самую длинную часть.

Можно ли перенести базу без остановки сервиса? +

Полностью без окна переключения — редкий случай; на практике окно сокращают до минимума параллельной эксплуатацией с синхронизацией данных. У вендора для таких проектов есть Postgres ProGate — решение для миграции и репликации данных со сравнением и проверкой целостности; его применение прорабатывается в рамках проекта миграции.

Что будет с Oracle Forms и APEX? +

Это части стека Oracle, вместе с СУБД они не переносятся: экранные формы и приложения переписываются на другой стек. Планируйте это отдельным проектом рядом с миграцией базы — на аудите объём такой переработки оценивается сразу.

Нужно ли покупать лицензии на время параллельной работы двух СУБД? +

Лицензии Postgres Pro нужны на продуктивный контур новой СУБД. Тестовая среда и среда разработки входят в купленный объём без доплаты, поэтому периоды тестирования и опытной эксплуатации дополнительных лицензий не требуют.

Виталий Куренков
Менеджер Мигсофт: подбор и поставка российского ПО для юрлиц и госкомпаний

Читайте дальше

Чем заменить VMware: российские платформы виртуализации Киберпротект · Импортозамещение Чем заменить VMware: российские платформы виртуализации Российские платформы виртуализации заменяют VMware vSphere: гипервизор KVM, кластер с высокой доступностью и перенос машин из vCenter или ESXi. Разбираем, что сейчас с лицензиями VMware, чем отличаются Кибер Инфраструктура, РЕД Виртуализация, Альт Виртуализация, ROSA Virtualization, «Брест» и VMmanager, как их лицензируют и какие сертифицированы ФСТЭК. 6 октября 2026 · 10 мин чтения Чем заменить Acronis и Veeam: российские системы бэкапа Киберпротект · Импортозамещение Чем заменить Acronis и Veeam: российские системы бэкапа Российский аналог Acronis и Veeam подбирают по задаче: Кибер Бэкап закрывает и компьютеры Windows, где стоял Acronis True Image, и серверы, базы данных и виртуальные машины, которые защищали Acronis Backup и Veeam. Разбираем, что на что менять, как считаются лицензии и как перейти, не потеряв старые копии. 6 октября 2026 · 10 мин чтения Российский почтовый сервер для организации: как выбрать Импортозамещение Российский почтовый сервер для организации: как выбрать Российский почтовый сервер ставят вместо Microsoft Exchange, чтобы почта, календари и адресная книга остались в контуре компании, — или переходят на российскую облачную почту. Сравниваем RuPost, CommuniGate Pro и VK WorkMail: где работают, как лицензируются, у кого есть сертификат ФСТЭК и когда проще выбрать облако. 27 сентября 2026 · 10 мин чтения
Лицензия СУБД Postgres Pro Enterprise на 1 ядро x86-64
716 344 ₽
В корзине