Oraclub in Tomsk

 Oraclub Tomsk . . 4-е собрание Oracle-club (март 1999г.)

4-Е СОБРАНИЕ ORACLE-CLUB (МАРТ 1999Г.)

Миграция приложений MS SQL Server -> Oracle
  • Опыт практического использования Oracle Migration Workbanch
  • перенос страниц MS IIS .asp на Oracle Web Server

    Ниже приведен рабочий отчет о ходе работ

    Миграция информационной системы

    средствами Migration Work Banch и Web Alchemy.
    1. Используемые продукты
    2. Миграция серверной части
    2.1 Сканирование исходной структуры БД из MS SQL Server
    2.2 Создание объектов в БД назначения
    2.3 Миграция данных
    3 Миграция прикладной части
    3.1 Технология переноса прикладной части от ASP на PL/SQL-cartridge
    4 Выводы и рекомендации
    5 Приложения

    1. Используемые продукты

    ПО Исходная конфигурация Конечная конфигурация
    сервер БД MS SQL Server 6.5 Oracle Server 7.3.2.2
    Web-server MS IIS 3.0 + ASP OWS 2.1 + PL/SQL
    Платформа CLR PII-300/128M/5G Sun Ultra450/256M/4G
    OS Windows NT Server 4.0 Sparc Solaris 2.6

    Для миграции серверной части использовался Migration Work Banch v1.0.3 (MWB) от Oracle Corp. MWB по его аннотации предназначен для миграции баз данных из MS SQL Server 6.5 на Oracle v.8.0.5. Текущая установленная версия Oracle : v7.3.2.2 - пробую провести миграцию на нее для экономии времени. При неудачном исходе дел - установка Oracle v.8.0.5 на свою рабочую машину и проба на этой конфигурации.

    Для миграции приложений функционирущих на базе сервера MS IIS 3.0 + ASP на платформу Oracle Web Server v2.1 + PL/SQL-cartridge использовалась утилита Web Alchemy.

    Необходимо отметить что исходная информационная система на основе продуктов Microsoft является гетерогенной - т.e. код приложений распределен между файловой системой сервера и хранимыми процедурами в среде MS SQL Server, в то время как для Oracle весь код приложений храниться совместно с используемыми данными в среде сервера данных.


    2. Миграция серверной части

    Перед использованием MWB на сервере БД Oracle необходимо создать пользователя MIGRATE и назначить ему по умолчанию одноименное табличное пространство размером не менее 10М.

    Затем , после запуска самого MWB (кстати , это средство миграции написано на Java) необходимо привести в соответствие типы данных из обоих серверов БД - это подробно описано в документации.

    Процесс переноса выполняется в три этапа :

    1. Сканирование исходной структуры БД в MS SQL Server
    2. Создание объектов ( таблиц,представлений, хранимых триггеров и процедур) в БД назначения
    3. Миграция данных

    Приведу описание каждого из этапов :

    2.1 Сканирование исходной структуры БД в MS SQL Server

    MWB производит считывание исходной БД и заполнение своего репозитария : создаются модель объектов исходной БД MS SQL Server и аналогичная ей модель для Oracle. Ошибки на этом этапе :

    2.2 Создание объектов в БД назначения

    При создании объектов в БД Oracle процент ошибок возрастает

    При этом некоторые триггеры и процедуры даже не были созданы в Oracle

    Не все объекты переносятся корректно : Необходимо дорабатывать представления, триггеры, процедуры и функции. Видимо анализатор исходного кода является недостаточно интеллектуальным, т.к. при детальном рассмотрении результатов создания почти всех хранимых программ выяснилось что :

    Кроме того необходимо пересматривать логику работы триггеров, так как триггеры в Oracle отрабатывают при изменении каждой записи, в то время как в MS SQL Server они применятся к массиву изменений (список новых или обновленных записей) - см. триггеры в приложении 1.

    Механизм формирования уникальных ключей различен (автонумерующиеся поля в MS SQL Server и последовательности в Oracle) - см. приложение 1.

    Необходимо отметить что для успешного проведения миграции должны принимать участие авторы системы, либо должна быть подробная документация .

    2.3 Миграция данных

    Этот раздел будет раскрыт позже


    3 Миграция прикладной части

    MWB не рассчитан на перенос web-страниц и скриптов ASP для IIS (Web-server от Microsoft). Для данной части системы необходимо принимать концептуальное решение по способу организации серверной части. Есть два варианта :

    1. Использование статических страниц + LiveHTML + PL/SQL
    2. Использование PL/SQL cartridge от Oracle Web server

    Второй вариант более независимый и более гибкий - может работать на любом Oracle старше 7.1.5 в связке с любым Web-сервером через соответствующий CGI-шлюз. В этой части для автоматизации переноса есть Oracle Web Alchemy. Но она не поддерживает перенос страниц .ASP - здесь нужно HTML теги конвертировать отдельно от кода .ASP. С другой стороны код .ASP очень похож на язык PL/SQL и требует в некоторых случаях только синтаксической доработки.

    3.1 Технология переноса прикладной части от ASP на PL/SQL-cartridge

    Для выполнения переноса ASP-скриптов была выработана следующая технология:

    1. Выделение HTML-кода из текста ASP-скриптов
    2. Конвертация HTML-кода посредством Web Alchemy в PL/SQL-код.
    3. Корректировка результатов генерации PL/SQL-кода (здесь необходимо пояснение : так как для более эффективного структурирования информации в HTML-документах активно использовались таблицы, которые после преобразования приобретали вид многоступенчатого каскадного вызова функций , полученный результат необходимо было править в последовательные вызовы процедур для переходя к следующему шагу.)
    4. Вставка ASP-кода в текст , полученный после шага 3.
    5. Преобразование ASP-кода в PL/SQL-конструкции
    6. Логическое завершение результата, согласование переменных и алгоритма.

    Замечания по приведенной технологии:

    Шаги 1-5 не являются творческими и могут быть выполнены автоматически

    На долю программиста таким образом оставалось бы только логическое завершение результата и выправка алгоритма, но для этого необходимо заложить дополнительные возможности в алгоритм Web Alchemy, как то :


    4. Выводы и рекомендации


    Приложение 1

  • Приложение 1 Различные конструкции MS SQL Server и Oracle
  • Приложение 2 Различные конструкции MS Internet Information Server и Oracle Web Server
    СЕМИНАРЫ > 4-е собрание Oracle-club (март 1999г.) >
    Oraclub_Tomsk | News | Links | FAQ | DOC | Статьи | Utility | Software | ФОРУМ |  Обратная связь
    Пишите на адрес : oraclub@ngs.ru