Проект

Общее

Профиль

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