ora2pg. Миграция базы данных Oracle на Pangolin
Версия: 23.0.
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты:
Для установки необходимых компонентов требуются права sudo all.
Компоненты, поставляемые в дистрибутиве продукта (каталог migration_tools/ora2pg):
- ora2pg (ora2pg-23.0.tar.tar.gz);
- DBD::Oracle (DBD-Oracle-1.80.tar.gz);
- DBD:Pg (DBD-Pg-3.15.0.tar.gz).
- DBD-Oracle.spec
- DBD-Pg.spec
- ora2pg.spec
Компоненты RPM для Oracle Client:
- oracle-instantclient18.5-basic-18.5.0.0.0-3.x86_64.rpm;
- oracle-instantclient18.5-jdbc-18.5.0.0.0-3.x86_64.rpm;
- oracle-instantclient18.5-sqlplus-18.5.0.0.0-3.x86_64.rpm;
- oracle-instantclient18.5-devel-18.5.0.0.0-3.x86_64.rpm.
Дополнительные компоненты:
- cpan;
- libaio1;
- libaio-devel;
- readline-devel.x86_64;
- perl-core;
- perl-devel;
- perl-version;
- perl-DBI.x86_64;
- perl-Test-Simple;
- libpq-devel
- postgresql-devel.
Схема размещения: не используется.
Ora2pg является opensource утилитой для миграции данных из Oracle в Pangolin.
Утилита ora2pg является одним из возможных вариантов и инструментов миграции. Окончательный выбор инструмента и его использование находится в зоне ответственности продуктовой команды, которая планирует замену используемой СУБД с Oracle на Pangolin.
Утилита Ora2Pg состоит из:
- скрипта Perl (ora2pg);
- модуля Perl (Ora2Pg.pm).
Для работы утилиты нужно:
- скорректировать файл конфигурации
ora2pg.conf
– установить DSN для базы данных Oracle; - установить нужный тип экспорта:
- таблица с ограничениями (TABLE with constraints);
- представление (VIEW);
- материализованное представление (MVIEW);
- табличное пространство (TABLESPACE);
- последовательность (SEQUENCE);
- индекс (INDEX);
- триггер (TRIGGER);
- предоставление (GRANT);
- функция (FUNCTION);
- процедура (PROCEDURE);
- пакет (PACKAGE);
- раздел (PARTITION);
- тип (TYPE);
- вставить/скопировать (INSERT or COPY);
- внешние данные (FDW);
- запрос (QUERY);
- инструмент ETL(KETTLE);
- синоним (SYNONYM).
Возможности утилиты Ora2Pg:
- по умолчанию Ora2Pg экспортирует в файл, который можно загрузить в базу данных Pangolin с помощью клиента psql;
- импорт непосредственно в целевую базу данных PostgreSQL путем установки ее DSN в файле конфигурации.
Включенные функции:
- экспорт полной схемы базы данных (таблицы, представления, последовательности, индексы) с уникальным, первичным, внешним ключом и ог раничениями проверки;
- экспорт разрешений/привилегий для пользователей и групп;
- экспорт разделов диапазона/списка и вложенных разделов;
- экспорт выбранной таблицы;
- экспорт схемы Oracle в схему PostgreSQL;
- экспорт предопределенных функций, триггеров, процедур, пакетов;
- экспорт полных данных или с предложением WHERE;
- полная поддержка Oracle BLOB-объекта как PostgreSQL BYTEA;
- экспорт представлений Oracle в виде таблиц PostgreSQL;
- экспорт пользовательских типов Oracle;
- обеспечение базового автоматического преобразования кода PLSQL в PLPGSQL;
- экспорт таблицы Oracle как внешней таблицы – оболочки данных (FDW, Foreign Data Wrapper);
- экспорт материализованного представления;
- вывод отчета о содержимом базы данных Oracle;
- оценка стоимости миграции базы данных Oracle;
- оценка уровня сложности миграции базы данных Oracle;
- оценка стоимости переноса кода PL/SQL из файла;
- оценка стоимости переноса запросов Oracle SQL, хранящихся в файле;
- создание XML-файлов (.ktr) для использования с Penthalo Data Integrator (Kettle);
- экспорт локатора Oracle и пространственной геометрии в PostGIS;
- экспорт DBLINK как оболочки данных Oracle FDW;
- экспорт синонимов в виде представлений;
- экспорт каталога как внешней таблицы или каталога с расширением
external_file
; - отправка списка SQL-инструкций через несколько подключений PostgreSQL;
- определение различий между базами данных Oracle и PostgreSQL для целей тестирования.
Доработка
Доработка не проводилась.
Примечание:
Данный компонент не входит в состав продукта, поэтому поставляется в виде бинарных файлов в составе дистрибутива в каталоге
3rdparty/migration_tools/
.
Ограничения
Ограничения отсутствуют.
Установка
Oracle Client
В данном документе в качестве примера используется Oracle Client версии 18.5.
sudo yum -y install oracle-instantclient18.5-basic-18.5.0.0.0-3.x86_64.rpm
sudo yum -y install oracle-instantclient18.5-devel-18.5.0.0.0-3.x86_64.rpm
Проверка версии Perl - должна быть версии perl 5.10 и выше:
perl -v