Migration OraToPG » История » Редакция 2
Редакция 1 (BEA, 05.06.2025 15:28) → Редакция 2/5 (BEA, 06.06.2025 07:36)
h1. Миграция с Oracle на PostgreSQL h2. Миграция на операционной системе Windows # Установка Perl Скачайте и установите "Strawberry Perl":https://strawberryperl.com/. После установки убедитесь, что Perl добавлен в переменную среды *@PATH@*. Проверьте установку выполнив команду: <pre><code class="shell"> perl -v </code></pre> # Установка Oracle Client. Уже описан процесс в нашей инструкции: [[OracleInstall|ссылка]] (Опционально) Создайте переменную среды TNS_ADMIN и укажите путь к файлу tnsnames.ora, если он используется. # Установка зависимостей Perl Откройте командную строку (cmd.exe) от имени администратора и выполните: <pre><code class="perl"> cpan DBI cpan DBD::Oracle cpan DBD::Pg cpan XML::Simple cpan DateTime cpan JSON cpan Term::ReadKey cpan Test::Simple </code></pre> *Для установки модулей может потребоваться доступ в интернет и права администратора.* # Установка ora2pg ## 2 варианта для скачивания ### Перейдите на их "оффициальный сайт":https://ora2pg.darold.net/. Найдите на сайте и перейлите по ссылке "GitHub Download v<version>". Скачиваем архив с исходниками: v<version>" !clipboard-202506060714-uwsux.png! ### Если у вас установлен git то откройте консоль и перейдите в то местоположение куда хотите скачать. Выполните команду: <pre><code class="shell"> git clone https://github.com/darold/ora2pg.git </code></pre> ## Перейдите в папку с исходниками: <pre><code class="shell"> Apply cd ora2pg Run </code></pre> Установите: <pre><code class="shell"> Apply perl Makefile.PL Run dmake dmake install </code></pre> *Примечание:* > Если dmake не найден, используйте gmake или nmake (входит в Strawberry Perl). ## # Проверка установки <pre><code class="shell"> Apply ora2pg --version Run </code></pre> Если команда возвращает версию — установка прошла успешно. # Скопируйте @tnsnames.ora@ из вашего рабочего клиента или сервера базы данных Oracle. Подробнее что за файл и откуда брать: [[Oracle|ссылка]] # Проверка подключения Настройка доступа к Oracle и PostgreSQL ## Создайте конфигурационный файл ora2pg.conf или возьмите в шаблон из файлов где установлен ora2pg. Пример минимальной конфигурации: <pre> # Set the Убедитесь, что переменная среды PATH содержит путь к Oracle home directory Instant Client. ORACLE_HOME <путь куда установлен Oracle клиент (к примеру @C:\app\product\12.1.0\dbhome_1@)> # Set Oracle database connection (datasource, user, password) ORACLE_DSN dbi:Oracle:host=<имя ПК в сети или его IP адрес>;service_name=<TNS имя вашего сервера>;port=<порт> ORACLE_USER omsk_adm ORACLE_PWD omsk_adm </pre> # Конфигурация для Для подключения к Oracle используйте корректные параметры (логин, пароль, SID/Service). ORACLE_DSN = dbi:Oracle:host=oracle_host;sid=ORCL;port=1521 ORACLE_USER = your_oracle_username ORACLE_PWD = your_oracle_password 2.2. Проверьте соединение с помощью команды: bash Копировать код ora2pg -t SHOW_VERSION -c /путь/к/вашему/ora2pg.conf или bash Копировать код ora2pg -c /путь/к/вашему/ora2pg.conf -e "SELECT * FROM dual;" Если соединение успешно, вы увидите ответ или версию базы данных. 2.3. Логика проверки: Отсутствие ошибок в выводе. Получение ожидаемых данных. 3. Проверка подключения к Для PostgreSQL 3.1. Создайте конфигурационный файл ora2pg.conf или используйте укажите параметры командной строки. подключения в конфиге ora2pg. # Пример минимальной конфигурации: ini запуска Копировать код Apply # Конфигурация для подключения к PostgreSQL PG_DSN = dbi:Pg:dbname=your_db;host=postgres_host;port=5432 PG_USER = your_postgres_username PG_PWD = your_postgres_password 3.2. Проверьте соединение командой: bash Копировать код ora2pg -t SHOW_VERSION -c /путь/к/вашему/ora2pg.conf или выполните простую команду: bash Копировать код ora2pg -c /путь/к/вашему/ora2pg.conf -e "SELECT version();" Если соединение успешно, вы увидите версию PostgreSQL. 4. Общие рекомендации Убедитесь, что драйверы установлены и доступны. Проверьте сетевое подключение (ping, telnet) до серверов. Внимательно изучите вывод ошибок — они подскажут причину проблем. Для диагностики можно включить подробный лог: ini Копировать код LOG_LEVEL = DEBUG или добавить флаг -v при запуске. Итог: Если команды возвращают ожидаемые результаты без ошибок, значит подключение настроено правильно. Если возникнут сложности — предоставьте вывод ошибок, я помогу их интерпретировать! Run