Требования
- Операционная система: Windows x64.
- Свободное место на диске для апдейта Oracle Database до версии 12 Release 1 (в случае, если текущая версия БД Oracle ниже 12 версии)
- Наличие тестовой среды для проверки миграции с текущей копией БД Oracle.
Список необходимого ПО
- Последняя версия платформы, в которой поддерживается БД Oracle: IQChannels-4.1.5-5 (версия с доработками для миграции).
- Версия Oracle Database: 12c Enterprise Edition Release 12.1.0.X.0 (где X - любая версия)
- Oracle Instant client basic windows 12.1.0.2 версии
- Postgresql 12 версии (на момент написания инструкции актуальная версия 12.20 для ОС Windows Server 2012 R2)
- Утилита для миграции Data pump (на момент написания инструкции актуальная версия 0.11.0), которую необходимо запросить вместе с инструкцией(документацией) у специалистов iSimpleLab.
- Для запуска утилиты Data pump также понадобится Java(openjdk) версии не ниже 1.8 (jdk-8u202).
Подготовка окружения к миграции
1) Для начала необходимо провести апдейт Oracle Database до версии 12 Release 1 в том случае, если текущая версия БД Oracle ниже 12.
2) Также предварительно необходимо запросить у специалистов iSimpleLab утилиту Data Pump вместе с инструкцией(документацией) последней версии (на 21.08.2024 актуальная версия 0.11.0).
3) Настроим Oracle Instant Client. Необходимо скачать версию basic 12.1.0.2. Далее распаковать папку instantclient_12_1 из архива, и положить на диск С. Сразу же необходимо копировать в буфер обмена абсолютный путь до папки (например C:/instantclient_12_1), и внести записи в переменные среды:
- Открываем Панель управления → Система и безопасность → Система → Дополнительные параметры системы → Переменные среды...
- В окне внизу есть системные переменные, необходимо добавить полный путь до instantclient_12_1 в переменную Path. От других записей отделяем точкой с запятой <;>
- Также создаем новую системную переменную, в Значение также пишем полный путь до instantclient_12_1 (если ранее не была добавлена):
- Имя переменной OCI_LIB64
- Перезагрузить ОС для того, чтобы изменения вступили в силу.
4) Далее загружаем IQChannels-4.1.5-5, с доработками для проведения миграции по ссылке.
- Распаковываем архив, папку iqchannels-windows переименуйте в
iqchannels
. - Далее если в корне диска
c:/
уже имеется ранее установленная платформа (папка iqchannels), то из неё необходимо взять свой конфиг по путиc:/iqchannels/config/config.yaml, копировать в другое место, а папку по пути C:/iqchannels можно удалить
- После переносим на C:/ распакованных архив, а также помещаем ранее копированный конфиг
config.yaml
в папку по путиc:/iqchannels/config/
4) Следующий этап - установка и подготовка PostgreSQL. Необходимо скачать установщик с официального сайта (https://www.postgresql.org/), версии 12 (актуальная 12.20 на 21.08.2024) для ОС Windows Server 2012 R2. После скачивания, установить, следуя подсказкам в установщике (особенности установки см. в ПРИМЕЧАНИИ).
ПРИМЕЧАНИЕ: Важно, когда увидите список компонентов для установки, отмеченный галочками, рекомендуем не ставить pgAdmin из данного установщика, поэтому галочку с него необходимо снять, т.к. в данном установщике pgAdmin часто не запускается в системе корректно. Для решения данного вопроса, после установки рекомендуем скачать pgAdmin отдельно и установить, если необходим графический интерфейс при подключении и настройке БД Postgre (например, pgAdmin 4.26).
После установки делаем подготовку БД Postgre:
- Открываем pgAdmin, подключаемся к БД (пароль тот же, который был указан в процессе установки)
- Далее создаем пользователя iqchannels, предоставляем ему все необходимые права.
- После создаем новую БД, называем iqchannels, указываем для неё пользователя iqchannels.
Чистая БД Postgre готова.
5) Далее нам необходимо проделать следующие действия с ранее подготовленной платформой iqchannels на C:/iqchannels:
Переходим в проводнике в папку C:/iqchannels/config, делаем копию файла. У нас получится два файла config.yaml (назвать их необходимо так, чтобы в скрипте миграции платформы был задействован определенный конфиг, далее в шагах будет подробно описано об этом). В одном необходимо указать подключение к БД Oracle, в другом подключение к БД PostgreSQL (ниже примеры параметров):
Для Oracle:db: type: oracle connect: iqchannels/secret@localhost:1521/xe max_idle: 4 # Max idle connections in a connection pool. max_open: 12 # Max open connections in a connection pool.
Для PostgreSQL:
db: type: postgres connect: host=localhost port=5432 dbname=iqchannels user=iqchannels password=secret sslmode=disable max_idle: 4 # Max idle connections in a connection pool. max_open: 12 # Max open connections in a connection pool.
- В данном шаге подготавливаются БД Oracle и PostgreSQL к переносу в утилите Data Pump. Необходимо сделать следующее:
В папке C:/iqchannels/config/ выбираем конфиг с указанной в параметрах БД Oracle (проверяем, что этот файл называется config.yaml). Второй конфиг с PostgreSQL переименовываем в _config.yaml (или любой другой, чтобы не был задействован в скрипте миграции ниже).
Открываем командную строку от имени Администратора.
Переходим в папку C:/iqchannels
cd C:/iqchannels
Далее запускаем скрипты миграции базы данных (Oracle) в командной строке (после данного шага командную строку закрывать не нужно, еще понадобится):
.\bin\iqchanneld.bat migrate 2017/11/15 15:46:45 WARN migrations Migrating... 2017/11/15 15:46:45 WARN migrations Reading migrations from "migrations/oracle" ... 2017/11/15 15:46:45 WARN migrations Applied 0 migration(s) in 64ms
- Не запускаем платформу на данном этапе, теперь сразу же делаем следующие действия:
Также, как и в шаге a. данного пункта, переименовываем конфиги (но теперь наоборот):
В папке C:/iqchannels/config/ выбираем конфиг с указанной в параметрах БД PostgreSQL (проверяем, что этот файл называется config.yaml). Второй конфиг с Oracle переименовываем в _config.yaml (или любой другой, чтобы не был задействован в скрипте миграции ниже). Снова переходим в командную строку, в папке C:/iqchannels снова запускаем скрипты миграции базы данных (PostgreSQL):
.\bin\iqchanneld.bat migrate 2017/11/15 15:46:45 WARN migrations Migrating... 2017/11/15 15:46:45 WARN migrations Reading migrations from "migrations/postgres" ... 2017/11/15 15:46:45 WARN migrations Applied 0 migration(s) in 64ms
Платформу также после данного шага запускать/проверять не нужно.
6) Следующим шагом самый главный этап - конвертирование и миграция данных через утилиту Data Pump (ранее её необходимо было запросить в шаге 2) инструкции). Для подготовки к её использованию необходимо:
- Создать в корне диска C:/ папку (например C:/datapump), в которую необходимо поместить необходимые файлы, а именно (для версии Data Pump 0.11.0 версии):
- data-pump-0.11.0.jar
- start.bat
- Далее необходимо прописать настройки подключения к БД Oracle и PostgreSQL. Сделать это можно двумя способами:
- Отредактировать файл start.bat в текстовом редакторе
- Редактировать параметры после запуска веб-интерфейса
Рассмотрим второй способ, чтобы было более наглядно. Открываем командную строку от имени Администратора, и переходим в папку, в которую поместили файлы Data pump (ниже пример для пути C:/datapump):
cd C:/datapump
и далее запускаем start.bat
start.bat
- Открываем браузер, переходим в веб-интерфейс по адресу localhost:8080 (данный адрес и порт можно изменить в файле start.bat):
- Ниже на примере скришота выделены поля, в которых указывается подключение к БД, а также логин и пароль (указывать такие же, как и в файле C:/iqchannels/config/config.yaml).
Важное замечание, что в поле JDBC URL для БД Оракл и БД PostgreSQL отличаются, менять знаки, разделяющие localhost, порт и имя базы не нужно.
- Далее необходимо настроить число одновременных потоков и таблиц, а также максимальное число и размер (более подробно о расчете в документации Data pump).
- После настройки, прокручиваем веб-страницу вниз, нажимаем кнопку Начать проверку. Пойдет процесс подготовки и проверки, после окончания будет выведена подробная информация об ошибках/несоответствиях. Если ошибки критичные, дальнейший этап будет недоступен. Пример на скриншоте ниже:
- Если все в порядке, нажимаем кнопку Начать копирование. По итогу будет выведена информация и статус (пример ниже):
7) Все готово, теперь необходимо проверить данные, для этого запустим платформу IQChannels:
Открываем командную строку от имени Администратора, и переходим в папку C:/iqchannels
cd C:/iqchannels
- Далее запускаем демон приложения:
.\bin\iqchanneld.bat run
- На данном этапе необходимо проверить корректность и наличие данных в разных настройках (вкладках).
8) Если в предыдущем пункте результаты проверки успешные, то миграция завершена, далее можно обновлять платформу на более свежие версии с PostgreSQL.