Проект

Общее

Профиль

Действия

Migration OraToPG » История » Редакция 2

« Предыдущее | Редакция 2/5 (Разница(diff)) | Следующее »
BEA, 06.06.2025 07:36


Миграция с Oracle на PostgreSQL

Миграция на операционной системе Windows

  1. Установка Perl
    Скачайте и установите Strawberry Perl. После установки убедитесь, что Perl добавлен в переменную среды PATH.
    Проверьте установку выполнив команду:
    perl -v
    
  2. Установка Oracle Client. Уже описан процесс в нашей инструкции: ссылка
    (Опционально) Создайте переменную среды TNS_ADMIN и укажите путь к файлу tnsnames.ora, если он используется.
  3. Установка зависимостей Perl
    Откройте командную строку (cmd.exe) от имени администратора и выполните:
    cpan DBI
    cpan DBD::Oracle
    cpan DBD::Pg
    cpan XML::Simple
    cpan DateTime
    cpan JSON
    cpan Term::ReadKey
    cpan Test::Simple
    

    Для установки модулей может потребоваться доступ в интернет и права администратора.
  4. Установка ora2pg
    1. 2 варианта для скачивания
      1. Перейдите на их оффициальный сайт. Найдите на сайте и перейлите по ссылке "GitHub Download v<version>". Скачиваем архив с исходниками:
      2. Если у вас установлен git то откройте консоль и перейдите в то местоположение куда хотите скачать. Выполните команду:
        git clone https://github.com/darold/ora2pg.git
        
    2. Перейдите в папку с исходниками:
      cd ora2pg
      

      Установите:
      perl Makefile.PL
      dmake
      dmake install
      

      Примечание: Если dmake не найден, используйте gmake или nmake (входит в Strawberry Perl).
    3. Проверка установки
      ora2pg --version
      

      Если команда возвращает версию — установка прошла успешно.
  5. Скопируйте tnsnames.ora из вашего рабочего клиента или сервера базы данных Oracle. Подробнее что за файл и откуда брать: ссылка
  6. Проверка подключения к Oracle
    1. Создайте конфигурационный файл ora2pg.conf или возьмите в шаблон из файлов где установлен ora2pg.
      Пример минимальной конфигурации:
      # Set the Oracle home directory
      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
      
  7. Конфигурация для подключения к Oracle
    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 или используйте параметры командной строки.
Пример минимальной конфигурации:

ini
Копировать код
  1. Конфигурация для подключения к 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 при запуске.

Итог:
Если команды возвращают ожидаемые результаты без ошибок, значит подключение настроено правильно.

Если возникнут сложности — предоставьте вывод ошибок, я помогу их интерпретировать!

Обновлено BEA 1 день назад · 2 изменени(я, ий)