Утилита ora2pgpro состоит из Perl-скрипта ora2pgpro
и Perl-модуля Ora2PgPro.pm
. Для использования утилиты достаточно указать в файле конфигурации ora2pgpro.conf
DSN для подключения к БД Oracle и, при необходимости, имя схемы. После этого необходимо указать тип экспорта: TABLE
с ограничениями, VIEW
, MVIEW
, TABLESPACE
, SEQUENCE
, INDEXES
, TRIGGER
, GRANT
, FUNCTION
, PROCEDURE
, PACKAGE
, PARTITION
, TYPE
, INSERT
или COPY
, FDW
, QUERY
, SYNONYM
.
По умолчанию ora2pgpro экспортирует данные в файл, который можно загрузить в БД Postgres Pro, используя клиент psql. Кроме того, можно настроить импорт напрямую в БД Postgres Pro, указав DSN в файле конфигурации. Множество параметров конфигурации ora2pgpro.conf
позволяют гибко управлять процессом экспорта. Доступны следующие функциональные возможности:
- Полный экспорт схемы БД (таблицы, представления, последовательности, индексы) с ограничениями уникальности, первичным ключом, внешними ключами и ограничениями-проверками.
- Экспорт прав пользователей и групп.
- Экспорт секций по спискам и по диапазонам.
- Экспорт нескольких таблиц (с указанием имён).
- Экспорт схемы Oracle как схемы Postgres Pro.
- Экспорт предопределённых функций, триггеров, процедур, пакетов и тел пакетов.
- Экспорт всех данных или выбранных предложением
WHERE
. - Полная поддержка экспорта объектов BLOB Oracle как bytea Postgres Pro.
- Экспорт представлений Oracle как таблиц Postgres Pro.
- Экспорт определяемых пользователем типов Oracle.
- Базовое автоматическое преобразование кода PL/SQL в код PL/pgSQL.
- Работа на любой платформе.
- Экспорт таблиц Oracle как таблиц, реализованных через обёртку сторонних данных.
- Экспорт материализованных представлений.
- Вывод отчёта о содержимом БД Oracle.
- Оценка стоимости миграции БД Oracle.
- Оценка сложности миграции БД Oracle.
- Оценка стоимости миграции кода PL/SQL из файла.
- Оценка стоимости миграции SQL-запросов Oracle, хранящихся в файле.
- Экспорт Oracle Locator и пространственных данных в PostGIS.
- Экспорт
DBLINK
в Oracle FDW. - Экспорт
SYNONYM
как представлений. - Экспорт
DIRECTORY
как внешних таблиц или каталога для расширенияexternal_file
. - Передача SQL-команд с использованием нескольких соединений с Postgres Pro.
- Сравнение БД Oracle и Postgres Pro для целей тестирования.
- Полная поддержка экспорта пакетов Oracle в пакеты Postgres Pro.
- Экспорт VARRAY как массивов Postgres Pro.
- Экспорт ассоциативных массивов как коллекций pg_variables.
Утилита ora2pgpro делает всё возможное, чтобы преобразовать БД Oracle в Postgres Pro автоматически, но некоторые действия необходимо выполнить вручную, например, проверить код PL/SQL, сгенерированный для функций, процедур, пакетов и триггеров, на соответствие синтаксису Postgres Pro. Некоторые рекомендации по портированию кода из PL/SQL в PL/pgSQL даны в разделах Портирование из Oracle PL/SQL и Инструменты миграции в Postgres Pro.