В статье затронем тему миграции данных с D5 на DRX на СУБД MS SQL, расскажу про основные моменты конвертации, и про личный опыт на таких проектах.
Начнем с основного, как эти самые миграции проходят и какой инструментарии используется.
Что нужно знать, чтобы начать:
Что потребуется для настройки и выполнения миграции:
Все, система Directum RX развернута и подготовлена. БД D5 подготовлена для переноса данных. Перед началом конвертации рекомендую сделать бэкап БД Directum RX. Это нужно на случай, если что-то пойдет не так, и мы бы могли просто восстановить БД из бэкапа.
Запускаем конвертер и видим контейнеры, в которых объединены задачи по переносу данных - рисунок 1.
Для начала необходимо сделать следующие настройки: внизу на панели диспетчера указать реквизиты подключения к нашим базам данных рисунок 2 и 3
После того как укажем реквизиты, у нас начнется проверка пакета. Обычно она проходит не дольше минуты, но пару раз натыкались на баг (видимо самой Visual Studio), что проверка идет бесконечно. Помогает только переустановка Visual Studio.
Вторым шагом необходимо заполнить переменные как на рисунках 4, 5.
Описание переменных:
DateLastRunDoc – Дата от которой берем документы для переноса (заполняется для доконвертации, если первичная конвертация, то оставляем как есть).
DateLastRunRef – Дата от которой берем записи справочников (заполняется для доконвертации, если первичная конвертация, то оставляем как есть).
DateLastRunTask – Дата от которой берем задачи (заполняется для доконвертации, если первичная конвертация, то оставляем как есть).
IsFirstMigration – Признак первичной миграции. По умолчанию true если доконвертация то false
RXServiceRecipientId – ИД служебного сотрудника, которого мы создали при настройке Directum RX.
Более подробная информация по переменным и настройке конвертации/доконвертации в документе «Directum RX. Конвертер данных Directum в Directum RX. Описание решения.pdf» - идет в комплекте с мигратором.
После настроек конвертера можно выполнять контейнер «Справочники и папки» - рисунок 6.
Во время выполнения если провалиться в задачу переноса данных, можно наблюдать в реал-тайме количество перенесенных записей.
Если при переносе возникают ошибки, они будут отображаться на вкладке «Обработчик событии».
Идем дальше, миграция справочников прошла без ошибок.
У нас мигрировали все служебные справочники, орг.структура компании, папки.
После миграции справочников запускаем систему и далее делаем по пунктам:
Возможные ошибки:
Select
*
from
Sungero_System_Ids
where
TableName = 'Sungero_Core_Link' --Имя нашей таблицы для проверки
select Max(id) from Sungero_Core_Link --Наша таблица
ИД в поле LastId не должно быть меньше чем максимальный ИД из таблицы Sungero_Core_Link. Если ИД в Sungero_System_Ids меньше чем максимальный в Sungero_Core_Link то выполняем запрос
update
Sungero_System_Ids
set
LastId = (select Max(id) from Sungero_Core_Link) --Наша таблица
where
TableName = 'Sungero_Core_Link' --Имя нашей таблицы
После выполнения запроса перезапускаем пулы и проверяем, ошибка должна исчезнуть
Пока это все, дальше в планах написать про перенос кастомных справочников и про перенос документов.
Ждем продолжение по миграции на RX. Очень интересует перенос кастомных справочников и про перенос документов. В планах мигрировать на RX с 5.8.
Если у вас после открытия файла конвертации появляется ошибки связанные с ключем.
То вам поможет изменение значения
ProtectionLevel
свойства в пакете SSIS.Как это указано в официальной документации Microsoft https://docs.microsoft.com/ru-ru/troubleshoot/sql/integration-services/error-loading-message-run-integration-services-package
У меня вопрос, а откуда у тебя взялось поле DIRUserId в БД RX в таблице Recipients?
У меня не находит это поле хоть что делай. (Таблицы из комплекта запросов я создал).
Виталий, а у меня в статье есть упоминания этого поля?) я вот сейчас еще раз перечитал, упоминания такого поля нет. Даже через Ctrl+F поискал))
Евгений, Я не совсем верно выразился:) Просто в этом конверторе есть такое поле которое делает запрос к БД именно RX :)
Виталий, Добрый день. В каком именно контейнере? Какая версия конвертера и какая версия DRX?
Евгений, RX 4.2 Версия конвертера 2.1.0.4000.
Во многих контейнерах. Например при переносе сотрудников.
Виталий, В скрипте создания таблиц конвертации в БД DRX есть строки
Но они почему то закомментированы. Вполне возможно что просто их нужно расскоментировать
Евгений, Я тоже этот скрипт смотрел и думал почему он закомменчен. Надо попробовать откатить конвертацию. И попробовать этот скрипт раскомментировать и попробовать еще раз все прогнать.
А как у вас Евгений отработало перемещение документов(именно файлы документов) через RXStorageMigrator?
Раскомментировал и у меня все пошло как по маслу:) А я столько возился. Каждый блок вручную поправлял... И колдовал и шаманил и в бубны стучал:))
Все перенеслось отлично. Но вот документы(файлы) не открываются. Внутренняя ошибка сервера. Не до конца понял как их перенести.
Виталий, Переносим сначала карточки, потом после миграции нужно запустить RXStorageMigrator он перенесет тела в ФХ. Если что то не открывается то смотрим логи
Евгений, В моем случае все хранится в БД. Но у меня нет такого контейнера "Перенести тела документов SQL хранилище".
Судя по тому что требует RXStorageMigrator что бы была таблица в БД D5
Converter_Documents_DocVersion
У меня именно такой никогда не было таблицы.
После запуска Утилиты вылетает ошибка:(
Виталий, там речь про то где документы будут хранится после переноса. В RX тела документов не хранятся теперь в БД. Так что перенос будет из БД в ФХ. И контейнер этот не нужен
Виталий, а по ошибке с утилитой лучше написать в СПД
Евгений, Еще раз Вам спасибо, уже давно написал, но пока тихо:)
Виталий, Необходимо скопировать библиотеку NLog.dll из каталога с бинарными файлами RX и размещение ее в папку вместе с exe утилиты
Добрый день, почему возможна данная ошибка?
[D5 Converter_Documents_Current [2]] Error: Ошибка D5 Converter_Documents_Current.Входы[OLE DB Destination Input].Столбцы[XRecID] в D5 Converter_Documents_Current.Входы[OLE DB Destination Input]. Возвращено состояние столбца: "Значение противоречит ограничениям целостности для столбца.".
Решил, не сделал первичную миграцию документов
Авторизуйтесь, чтобы написать комментарий