Проект

Общее

Профиль

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
Если возникнут сложности — предоставьте вывод ошибок, я помогу их интерпретировать!