4.1. Использование #

Сначала необходимо убедиться, что пути ко всем библиотекам и двоичным файлам включают каталог установки Oracle Instant Client:

export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
export PATH="/usr/lib/oracle/11.2/client64/bin:$PATH"

По умолчанию ora2pgpro выполняет поиск файла конфигурации /etc/ora2pgpro/ora2pgpro.conf, и если этот файл существует, достаточно выполнить команду:

/usr/local/bin/ora2pgpro

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

/usr/local/bin/ora2pgpro -c /etc/ora2pgpro/new_ora2pgpro.conf

Чтобы посмотреть все параметры командной строки, поддерживаемые ora2pgpro, обратитесь к ora2pgpro.

В случае успеха ora2pgpro возвращает 0, а в случае ошибки 1. Если дочерний процесс прерывается, возвращается 2 и выводится следующее предупреждение: «WARNING: an error occurs during data export. Please check what's happen.» (ПРЕДУПРЕЖДЕНИЕ: Во время экспорта данных произошла ошибка. Обратите внимание.) В большинстве случаев ошибка вызвана нехваткой памяти — попробуйте уменьшить значение DATA_LIMIT.

Обратите внимание, что производительность можно увеличить, обновив статистику в Oracle:

DBMS_STATS.GATHER_SCHEMA_STATS
DBMS_STATS.GATHER_DATABASE_STATS
DBMS_STATS.GATHER_DICTIONARY_STATS

Если заданы параметры --project_base и --init_project, ora2pgpro создаёт шаблон проекта, содержащий дерево проекта, файл конфигурации и скрипт для экспорта всех объектов из БД Oracle. Пример использования команды:

ora2pgpro --project_base /app/migration/ --init_project test_project
	Creating project test_project.
	/app/migration/test_project/
		schema/
			dblinks/
			directories/
			functions/
			grants/
			mviews/
			packages/
			partitions/
			procedures/
			sequences/
			synonyms/
			tables/
			tablespaces/
			triggers/
			types/
			views/
		sources/
			functions/
			mviews/
			packages/
			partitions/
			procedures/
			triggers/
			types/
			views/
		data/
		config/
		reports/

	Generating generic configuration file
	Creating script export_schema.sh to automate all exports.
	Creating script import_all.sh to automate all imports.

При этом создаётся стандартный файл конфигурации, в котором можно задать параметры подключения к БД Oracle, и скрипт оболочки export_schema.sh. Каталог sources/ будет содержать код Oracle, каталог schema/ — код для портирования в Postgres Pro. Каталог reports/ будет содержать HTML-отчёты, которые помогают оценить стоимость миграции.

Если вы хотите использовать собственный файл конфигурации, укажите путь к нему в параметре -c. Допишите к имени файла суффикс .dist, чтобы добавить в него стандартные параметры конфигурации ora2pgpro, в противном случае файл будет копирован в исходном состоянии.

После установки подключения к БД Oracle можно выполнить скрипт export_schema.sh, чтобы экспортировать все типы объектов из БД Oracle и вывести файлы DDL в подкаталоги схемы. По завершении процесса, когда импортируемая схема будет проверена, будет выдана команда для последующего экспорта данных.

Можно загрузить созданные файлы DDL вручную или воспользоваться скриптом import_all.sh, чтобы импортировать файлы интерактивно. Если миграция не выполняется сразу, рекомендуется использовать эти скрипты.

FAQ