Разработка программного обеспечения на заказ

пн-пт с 09:00 до 18:00

Миграция систем с СУБД Oracle на PostgreSQL

Postgres

Система управления базами данных (СУБД) Oracle с  момента выпуска версии под ОС UNIX и до настоящего времени является №1 на рынке реляционных СУБД. При всех достоинствах у нее есть существенный недостаток —  стоимость закупки и последующего владения непомерно высока особенно на фоне open source СУБД, которые появились за это время и в большинстве практических применений имеют вполне сопоставимые характеристики.

Одна из таких СУБД — PostgreSQL, наиболее подходит для миграции с Oracle благодаря схожим концепциям построения:

    • обе СУБД оперируют схемами, табличными пространствами, таблицами, индексами и т.д.;
    • обе СУБД имеют встроенные процедурные расширения — Oracle PL/SQL и PostgreSQL pg/SQL. Большинство PL/SQL хранимых процедур Oracle, которые не используют внешние пакеты расширения могут быть исполнены в среде PostgreSQL с минимальными модификациями;
    • обе имеют библиотеки JDBC/ODBC и OLEDB/.Net для подключения клиентов;

Российская компания Postgres Professional в 2015 году выпустила и развивает продукт Postgres Pro, который включен в национальный реестр российского программного обеспечения.

Последние решения компании Oracle о прекращении работы в РФ делает вопрос замены Oracle на другую СУБД еще более актуальным.

Наша компания имеет успешный опыт такой миграции и готова предоставить полный пакет услуг по замене СУБД Oracle на PostgreSQL (PostgrePro). Трудоемкость миграции может варьироваться в широких пределах и зависит от того, насколько широко в прикладной системе использованы пакеты расширений, которые во множестве имеются в экосистеме Oracle.

Самый простой вариант миграции получается в случае, если база данных не содержит серверную логику в виде хранимых процедур, функций, триггеров.

Основные задачи, которые придется решить перед началом миграции:

    • переопределение типов столбцов (number в numeric и integer, varchar2 в varchar и text)
    • изменение текстов SQL команд (замена nvl и decode, исключение устаревшего синтаксиса внешнего соединения)
    • исключение/замена конструкций connect by, merge
    • возможно, изменение работы с полями типа date
    • оптимизация планов исполнения запросов.

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

В PostgreSQL отсутствуют средства создания пакетов, поэтому требуемую функциональность придется разрабатывать самостоятельно.

В любом случае, процесс миграции состоит из следующих основных этапов:

    • Анализ структуры данных и приложений
    • Разработка плана миграции
    • Миграция данных
    • Миграция приложений

Анализ структуры данных и приложений

На этом этапе анализируется версия Oracle, структура БД, формируется список полей, требующий замены типов, диапазоны значений в этих полях

Определяются таблицы, содержащие наибольший объем данных, набор пакетов и процедуры/функции, которые реально используются в  приложениях. Формируется список приложений, использующих БД, порядок их миграции и т.д.

Разработка плана миграции

Оценивается программно-аппаратная среда, в которой будет осуществляться миграция, бизнес-требования к процессу (возможность и длительность простоя, возможность отката и др.) Разрабатывается детальный план, учитывающий версии продуктов, способы подключения к СУБД, определяются способ переноса данных.

Определяется план действий на случай отката и возвращения системы в исходной состояние. Выбираются и подготавливаются инструменты и скрипты для выполнения миграции и контроля правильности ее выполнения.

Выбираются средства автоматизации миграции например, Ora2Pg, разрабатываются дополнительные скрипты, ускоряющие процесс.

Оценивается время для выполнения каждого шага миграции с учетом максимального времени простоя прикладных систем.

Миграция данных

Собственно миграция.  Проводится на основании плана миграции, разработанного на предыдущем шаге.  На каждой итерации уточняется план миграции, устраняются ошибки в исходных данных.

Миграция приложений

    • Подключение компонентов системы к новой базе данных.
    • Тестирование работы отдельных модулей
    • Интеграционное тестирование
    • Анализ планов исполнения запросов, Оптимизация целевой БД

Ожидаемые результаты

    1. Исключение зависимости от иностранных производителей ПО.
    2. Снижение лицензионных и эксплуатационных затрат на поддержку СУБД.
    3. Повышение информационной безопасности прикладных систем.

Консультация

Если у Вас возник вопрос или Вы хотите связаться для расчёта проекта, оставьте заявку или свяжитесь с нами. Будем рады сотрудничеству

Расскажите нашему ведущему IT-специалисту задачи, которые стоят перед Вами, мы подготовим самые эффективные пути решения.

Выберите планируемый бюджет на разработку, руб:

Политики конфиденциальности