Согласование данных

Технологическое ядро

Прежде чем разбираться с данными необходимо убедиться в работоспособности технологического ядра IBSO.

Подключитесь к схеме "Администратором дистрибутива" и активируйте лицензии. Затем попытайтесь подключиться к схеме "Навигатором"

Если "Навигатор" не запускается - ядро перенесено некорректно и придется самостоятельно разбираться с причинами. Здесь многое зависит от версии “Технологического ядра” и комбинации “платформа/версия Oracle” на “ОРИГИНАЛЕ” и “КОПИИ”. Например после импорта не компилируются отдельные package body. В моем частном случе это был calendar_mgr. Приходится загружать заново.

На этом же этапе можно внешний блокировщик заменить на внутренний (мне на ноутбуке так удобней) и пр.

Все эти манипуляции описаны в скриптах из каталога minibso/create/imp/stage2. Чтобы они заработали нужно поместить в каталог PACKAGE BODY для RTL и calendar_mgr из дистрибутива. В скрипте fio.sql исправьте каталоги и запустите:

sh>./union.sh

Затем еще раз попытайтесь подключиться "Навигатором". Если не получилось, ищите причину в пакетах "Технологического ядра".

Восстановление целостности данных

Поскольку экспортировались рассогласованные данные, необходимо почистить все, что нарушает ограничения ссылочной целостности. По правилу "ON DELETE CASCADE" восстанавливается целостность внешних ключей в трех случаях:

  • значение внешнено ключа имеет ограничение "NOT NULL".
  • внешний ключ является "ID" в дочернем классе.
  • попытка выполнения update <table> set <fk> = null вызывает ошибку. (Обычно это нарушение уникальности сложного ключа.)

В остальных случаях действует правило "ON DELETE SET NULL". Полный объем работы по приведению "Технологического ядра" в рабочее состояние и удаление рассогласованных данных запускается:

sh>./run.sh union

Самые затратные по времени операции на этом этапе сбор статистики ~ 4 часа, первый этап подключения ссылочной цлостности ~ 1 час. Если во время эспорта не произошло сбоев, то удаление лишних записей занимает ~ 1 час. Сам процесс удаления осиротевших ссылок можно наблюдать в протоколе:

sh>tail -f minibso/create/imp/stage3/dorun.log