Migration OraToPG » История » Версия 4
BEA, 06.06.2025 13:52
1 | 1 | BEA | h1. Миграция с Oracle на PostgreSQL |
---|---|---|---|
2 | |||
3 | 4 | BEA | {{>toc}} |
4 | |||
5 | 1 | BEA | h2. Миграция на операционной системе Windows |
6 | |||
7 | 3 | BEA | h3. Подготовка к миграции: установка необходимого ПО |
8 | |||
9 | 1 | BEA | # Установка Perl |
10 | Скачайте и установите "Strawberry Perl":https://strawberryperl.com/. После установки убедитесь, что Perl добавлен в переменную среды *@PATH@*. |
||
11 | Проверьте установку выполнив команду: |
||
12 | <pre><code class="shell"> |
||
13 | perl -v |
||
14 | </code></pre> |
||
15 | # Установка Oracle Client. Уже описан процесс в нашей инструкции: [[OracleInstall|ссылка]] |
||
16 | # Установка зависимостей Perl |
||
17 | 3 | BEA | ## Откройте командную строку (cmd.exe) от имени администратора и выполните: |
18 | 1 | BEA | <pre><code class="perl"> |
19 | cpan DBI |
||
20 | cpan DBD::Oracle |
||
21 | cpan DBD::Pg |
||
22 | cpan XML::Simple |
||
23 | cpan DateTime |
||
24 | cpan JSON |
||
25 | cpan Term::ReadKey |
||
26 | cpan Test::Simple |
||
27 | </code></pre> |
||
28 | *Для установки модулей может потребоваться доступ в интернет и права администратора.* |
||
29 | 3 | BEA | ## Проверьте установленные зависимости при помощи команд: |
30 | <pre><code class="shell"> |
||
31 | perl -e "use DBI;" |
||
32 | perl -e "use DBD::Oracle;" |
||
33 | perl -e "use DBD::Pg;" |
||
34 | perl -e "use XML::Simple;" |
||
35 | perl -e "use DateTime;" |
||
36 | perl -e "use JSON;" |
||
37 | perl -e "use Term::ReadKey;" |
||
38 | perl -e "use Test::Simple;" |
||
39 | </code></pre> |
||
40 | 1 | BEA | # Установка ora2pg |
41 | 2 | BEA | ## 2 варианта для скачивания |
42 | ### Перейдите на их "оффициальный сайт":https://ora2pg.darold.net/. Найдите на сайте и перейлите по ссылке "GitHub Download v<version>". Скачиваем архив с исходниками: |
||
43 | !clipboard-202506060714-uwsux.png! |
||
44 | ### Если у вас установлен git то откройте консоль и перейдите в то местоположение куда хотите скачать. Выполните команду: |
||
45 | <pre><code class="shell"> |
||
46 | git clone https://github.com/darold/ora2pg.git |
||
47 | </code></pre> |
||
48 | ## Перейдите в папку с исходниками: |
||
49 | <pre><code class="shell"> |
||
50 | cd ora2pg |
||
51 | </code></pre> |
||
52 | Установите: |
||
53 | <pre><code class="shell"> |
||
54 | perl Makefile.PL |
||
55 | dmake |
||
56 | dmake install |
||
57 | </code></pre> |
||
58 | *Примечание:* Если dmake не найден, используйте gmake или nmake (входит в Strawberry Perl). |
||
59 | ## Проверка установки |
||
60 | <pre><code class="shell"> |
||
61 | ora2pg --version |
||
62 | </code></pre> |
||
63 | 1 | BEA | Если команда возвращает версию — установка прошла успешно. |
64 | # Скопируйте @tnsnames.ora@ из вашего рабочего клиента или сервера базы данных Oracle. Подробнее что за файл и откуда брать: [[Oracle|ссылка]] |
||
65 | # Проверка подключения к Oracle |
||
66 | 3 | BEA | ## Создайте конфигурационный файл ora2pg.conf используя файл шаблон который можно найти по пути где установлен ora2pg. |
67 | 1 | BEA | Пример минимальной конфигурации: |
68 | <pre> |
||
69 | # Set the Oracle home directory |
||
70 | 3 | BEA | ORACLE_HOME <путь ORACLE_HOME куда установлен Oracle клиент> |
71 | 1 | BEA | |
72 | # Set Oracle database connection (datasource, user, password) |
||
73 | ORACLE_DSN dbi:Oracle:host=<имя ПК в сети или его IP адрес>;service_name=<TNS имя вашего сервера>;port=<порт> |
||
74 | 3 | BEA | ORACLE_USER <имя пользователся администратора Омеги> |
75 | ORACLE_PWD <пароль пользователся администратора Омеги> |
||
76 | 1 | BEA | </pre> |
77 | 3 | BEA | ## Проверьте соединение с помощью команды: |
78 | <pre><code class="shell"> |
||
79 | 1 | BEA | ora2pg -t SHOW_VERSION -c /путь/к/вашему/ora2pg.conf |
80 | 3 | BEA | </code></pre> |
81 | 1 | BEA | или |
82 | 3 | BEA | <pre><code class="shell"> |
83 | ora2pg -c <путь к вашему ora2pg.conf> -e "SELECT * FROM dual;" |
||
84 | </code></pre> |
||
85 | 1 | BEA | Если соединение успешно, вы увидите ответ или версию базы данных. |
86 | |||
87 | 3 | BEA | h3. Подготовка к миграции: развёртывание PostgreSQL и приведение к одинаковой версии с Oracle |
88 | 1 | BEA | |
89 | 3 | BEA | # Установить PostgreSQL. Инструкция по установке: [[PostgreInstall|ссылка]] |
90 | # Произвести импорт стартовой версии БД Omega Production: |
||
91 | ## Дамп БД брать из нашего фтп сервера: ftp://demo:demo@internal.omp-system.ru/ServerDistr/DB/omp/dmp/postgres/omp_adm.sql |
||
92 | ## Рекомендуется переименовать базу данных в содержимом дампа на ту же что у вас сейчас на оракл. |
||
93 | То есть к примеру если у вас пользователь администратор омеги именуется как test_adm то ваша база данных именуется как test_adm. |
||
94 | В таком примере необходимо открыть дамп как текстовый файл и заменить по всему файлу OMP_ADM на TEST_ADM. (именно заглавными но в поиске/замене отключаем учитывание регистра) |
||
95 | ## Произвести импорт дампа при помощи консольных скриптов описанные в инструкции импорта/экспорта дампа: [[PostgreImportExport|ссылка]] |
||
96 | # Выслать отделу сопровождения текущую версию скриптов указанную в окне "О программе" внутри приложения Omega Production и написать чтобы прислали набор скриптов для обновления версии скриптов базы данных |
||
97 | # Проверить подключение к базе данных на устройстве на котором ранее устанавливали ora2pg |
||
98 | ## Используйте следующую команду для подключения: |
||
99 | <pre><code class="shell"> |
||
100 | psql -h <имя ПК в сети или его IP адрес> -p <порт> -U <пользователь> -d <имя_базы> |
||
101 | </code></pre> |
||
102 | Где: |
||
103 | - <пользователь> - имя пользователя администратора базы данных |
||
104 | - <имя_базы> - такое же как и имя пользователя администратора базы данных |
||
105 | При подключении вас попросят ввести пароль. |
||
106 | ## Проверка соединения |
||
107 | После успешного подключения вы увидите приглашение вида: |
||
108 | <pre> |
||
109 | <имя базы>=# |
||
110 | </pre> |
||
111 | Это означает, что соединение установлено. |
||
112 | ## Выполнение простых команд для проверки базы |
||
113 | ##* Проверка версий PostgreSQL: |
||
114 | <pre><code class="sql"> |
||
115 | SELECT version(); |
||
116 | </code></pre> |
||
117 | ##* Проверка содержимого OMP_PROPERTIES: |
||
118 | <pre><code class="sql"> |
||
119 | SELECT * FROM omp_properties op order by op.code LIMIT 10; |
||
120 | </code></pre> |
||
121 | ##* Выйти из psql: |
||
122 | <pre><code class="sql"> |
||
123 | \q |
||
124 | </code></pre> |
||
125 | # Дождаться ответа от нашего отдела сопровождения и получить набор скриптов для обновления базы данных. |
||
126 | ## В наборе скриптов должен присутствовать @run.bat@. Открыть его для редактирования и подправить параметры подключения к базе данных. |
||
127 | Содержимое данного скрипта будет из себя представлять уже ранее указанный в этой инструкции @psql ....@ |
||
128 | ## Дождаться конца выполнения. Проверить созданный лог на наличие ошибок. |
||
129 | Стандартный формат ошибок у PostgreSQL: :ERROR: на английском или :ОШИБКА: на русском в зависимости от выбранного языка при установке СУБД. |
||
130 | Если ошибки присутствуют то связаться с нами по вопросу их устранений |
||
131 | 2 | BEA | |
132 | 3 | BEA | *ВНИМАНИЕ: после данного этапа необходимо приостановить установку обновлений* |
133 | 2 | BEA | |
134 | 1 | BEA | h3. Миграция: выгрузка из Oracle |
135 | |||
136 | 4 | BEA | # Скачайте указанные ниже файлы из этого вики на ПК где установлен ora2pg и сложите их по одному пути: |
137 | 3 | BEA | #* |
138 | #* |
||
139 | # Отредактируйте файлы указав свои настройки в ниже перечисленных местах |
||
140 | <pre> |
||
141 | # Set the Oracle home directory |
||
142 | ORACLE_HOME <путь ORACLE_HOME куда установлен Oracle клиент> |
||
143 | |||
144 | # Set Oracle database connection (datasource, user, password) |
||
145 | ORACLE_DSN dbi:Oracle:host=<имя ПК в сети или его IP адрес>;service_name=<TNS имя вашего сервера>;port=<порт> |
||
146 | ORACLE_USER <имя пользователся администратора Омеги> |
||
147 | ORACLE_PWD <пароль пользователся администратора Омеги> |
||
148 | </pre> |
||
149 | <pre> |
||
150 | # Oracle schema/owner to use |
||
151 | SCHEMA <имя пользователя администратора> |
||
152 | 1 | BEA | </pre> |
153 | 4 | BEA | |
154 | 3 | BEA | h3. Миграция: загрузка в PostgreSQL |
155 | |||
156 | 1 | BEA | |
157 | Если возникнут сложности — предоставьте вывод ошибок, я помогу их интерпретировать! |