Инсталляция Ora2Pg в Linux

«Пост-Грэс-Кью-Эл» свободная объектно-реляционная СУБД. Обмениваемся вопросами и ответами о её работе.
Ответить
AntonS
Сообщения: 25
Зарегистрирован: Пт июн 03, 2022 8:51 am

Инсталляция Ora2Pg в Linux

Сообщение AntonS »

Краткая инструкция
Ora2Pg - это бесплатный инструмент миграции схемы и данных из Oracle в PostgreSQL. Он подключается к вашей базе данных Oracle, автоматически считывает и извлекает ее структуру или данные, и затем генерирует SQL-сценарии для последующей их загрузки в базу данных PostgreSQL. Экспорт данных допускается из Oracle в PostgreSQL напрямую.
Начальные условия:
ALT Server 10 (x86-64) в минимальной инсталляции, возможны отличия других дистрибутивов и/или версий. Выполнение всех команд от имени sudo и root.

Проверка версии perl: Не ниже версии 5.10

Предварительное обновление и установка пакетов:

Код: Выделить всё

apt-get update
apt-get install gcc
apt-get install perl-CPAN
apt-get install libnsl2
Установка Oracle instant client, sqlplus, sdk:

Код: Выделить всё

cd /opt/oracle
unzip instantclient-basic-linux.x64-19.16.0.0.0dbru.zip
unzip instantclient-sqlplus-linux.x64-19.16.0.0.0dbru.zip
unzip instantclient-sdk-linux.x64-19.16.0.0.0dbru.zip
cd instantclient_19_16
ldconfig
Создание simlink libnsl:

Код: Выделить всё

ln -s /usr/lib64/nsl/libnsl.so.2 /usr/lib64/libnsl.so.1
Настройка ENV:

Код: Выделить всё

ORACLE_HOME=/opt/oracle/instantclient_19_16; export ORACLE_HOME;
LD_LIBRARY_PATH=$ORACLE_HOME; export LD_LIBRARY_PATH;
PATH=$PATH:$ORACLE_HOME; export PATH
C_INCLUDE_PATH=/opt/oracle/instantclient_19_16/sdk/include; export C_INCLUDE_PATH;
Проверка sqlplus:

Код: Выделить всё

sqlplus /nolog
quit
Настройка подключения к Oracle в /opt/oracle/instantclient_19_16/network/admin/tnsnames.ora
Установка DBI - интерфейсы БД для Perl:

Код: Выделить всё

mkdir /home/scott/perl
cd /opt
tar xvzf DBI-1.643.tar.gz
cd DBI-1.643
perl Makefile.PL PREFIX=/home/scott/perl
make
make test
make install
PERL5LIB=/home/scott/perl/lib64:/home/scott/perl/lib64/perl/5.34; export PERL5LIB;
Установка DBD::Oracle

Код: Выделить всё

cd /opt
tar xvzf DBD-Oracle-1.83.tar.gz
cd DBD-Oracle-1.83
perl Makefile.PL PREFIX=/home/scott/perl
make
make install
Установка ora2pg:

Код: Выделить всё

tar xjf ora2pg-23.1.tar.bz2
cd ora2pg-23.1
perl Makefile.PL
make && make install
Проверка версии Ora2Pg:

Код: Выделить всё

perl -e 'use Ora2Pg; print "$Ora2Pg::VERSION\n";'
23.1
Создание инициализационного проекта:

Код: Выделить всё

mkdir /home/scott/migration
ora2pg --project_base /home/scott/migration/ --init_project test_project
Дальнейшая настройка осуществляется редактированием ora2pg.conf
Пример запуска:

Код: Выделить всё

ora2pg -c /home/scott/migration/test_project/config/ora2pg.conf
Последний раз редактировалось AntonS Пн окт 03, 2022 4:53 pm, всего редактировалось 2 раза.
Аватара пользователя
SQL*Plus
Сообщения: 120
Зарегистрирован: Ср апр 20, 2022 1:09 pm

Re: Инсталляция Ora2Pg в Linux

Сообщение SQL*Plus »

AntonS,

Толковая инструкция!

Спасибо! :-)
AntonS
Сообщения: 25
Зарегистрирован: Пт июн 03, 2022 8:51 am

Re: Инсталляция Ora2Pg в Linux

Сообщение AntonS »

В некоторых случаях создание дистрибутива perl Makefile.PL проходит без указания PREFIX, тогда задавать переменную PERL5LIB также не надо.
AntonS
Сообщения: 25
Зарегистрирован: Пт июн 03, 2022 8:51 am

Re: Инсталляция Ora2Pg в Linux

Сообщение AntonS »

Установка Ora2Pg в Linux на базе Debian
Есть отличия от инструкции для ALT Server
Начальные условия:
Debian 9 (x86-64) в минимальной инсталляции. Выполнение всех команд от пользователя root или sudo

Проверка версии perl: Не ниже версии 5.10

Предварительное обновление и установка пакетов:

Код: Выделить всё

apt update && apt upgrade
apt install libaio1 libaio-dev
apt install make
apt install libc6 libc6-dev libc-dev-bin
apt install bzip2
Установка Oracle instant client, sqlplus, sdk:

Код: Выделить всё

cd /opt/oracle
unzip instantclient-basic-linux.x64-19.16.0.0.0dbru.zip
unzip instantclient-sqlplus-linux.x64-19.16.0.0.0dbru.zip
unzip instantclient-sdk-linux.x64-19.16.0.0.0dbru.zip
cd instantclient_19_16
ldconfig
Создание simlink libclntshcore:

Код: Выделить всё

ln -s libclntshcore.so.19.1 libclntshcore.so
Настройка ENV:

Код: Выделить всё

ORACLE_HOME=/opt/oracle/instantclient_19_16; export ORACLE_HOME;
LD_LIBRARY_PATH=$ORACLE_HOME; export LD_LIBRARY_PATH;
PATH=$PATH:$ORACLE_HOME; export PATH;
C_INCLUDE_PATH=/opt/oracle/instantclient_19_16/sdk/include; export C_INCLUDE_PATH;
Проверка sqlplus:

Код: Выделить всё

sqlplus /nolog
quit
Настройка подключения к Oracle в /opt/oracle/instantclient_19_16/network/admin/tnsnames.ora
Установка DBI - интерфейсы БД для Perl:

Код: Выделить всё

mkdir /home/scott/perl
cd /opt
tar xvzf DBI-1.643.tar.gz
cd DBI-1.643
perl Makefile.PL PREFIX=/home/scott/perl
make
make test
make install
PERL5LIB=/home/scott/perl/lib:/home/scott/perl/lib/x86_64-linux-gnu/perl/5.24.1; export PERL5LIB;
Установка DBD::Oracle

Код: Выделить всё

cd /opt
tar xvzf DBD-Oracle-1.83.tar.gz
cd DBD-Oracle-1.83
perl Makefile.PL PREFIX=/home/scott/perl
make
make install
Установка ora2pg:

Код: Выделить всё

tar xjf ora2pg-23.2.tar.bz2
cd ora2pg-23.2
perl Makefile.PL
make && make install
Проверка версии Ora2Pg:

Код: Выделить всё

perl -e 'use Ora2Pg; print "$Ora2Pg::VERSION\n";'
23.2
Создание инициализационного проекта:

Код: Выделить всё

mkdir /home/scott/migration
ora2pg --project_base /home/scott/migration/ --init_project test_project
Дальнейшая настройка осуществляется редактированием ora2pg.conf
Пример запуска:

Код: Выделить всё

ora2pg -c /home/scott/migration/test_project/config/ora2pg.conf
Ответить