Главная » Microsoft SQL Server, Базы данных » Миграция в SQL Server 2005

0

В течение жизненного цикла данных существуют определенные моменты, когда преобразование данных в новую базу просто необходимо. В таких ситуациях следует идентифицировать возможности новой базы данных, ее требования, а также потребности производства. Если поддержка миграции данных достаточно очевидна, то длительные процессы начнут преобразовывать данные, их схемы и бизнес-логику в новую базу данных. Чтобы облегчить эти процессы, компания Microsoft предлагает помощь утилиты SQL Server Migration Assistant (SSMA), поставляемой в составе пакета SQL Server 2005.

Утилита Migration Assistant

Изначальная версия утилиты SQL Server Migration Assistant (SSMA) включала поддержку миграции баз данных Oracle в SQL Server 2000. Последующие версии расширили список поддерживаемых баз данных и их преобразований.

Утилита SSMA сделала большой шаг вперед в определении сложности проектов баз данных в смысле затрат и времени, сопряженных с традиционным определением. Схема, данные, ограничения, миграция и проверка корректности могут контрлироваться с помощью новой среды.

Любая миграция проходит через следующие этапы: оценка, преобразование схемы, миграция данных, преобразование бизнес-логики, проверка корректности, интеграция и анализ производительности.

Оценка

Утилита SSMA оценивает работу, необходимую для выполнения миграции, после чего выводит отчет о том, что может быть сделано автоматически, а что требует ручной работы. Для характеристики базы данных используется около ста статистик, которые позволяют заглянуть глубоко в “сердце” базы данных. Утилита SSMA также выполняет оценку количества часов, необходимых для выполнения задач преобразования вручную.

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

Преобразование схемы

После подключения к исходной базе данных Oracle и целевой базе данных SQL Server интерфейс отображает различные их атрибуты и объекты. Для сравнения могут отображаться программы на языках PL/SQL и Т-SQL. Интерфейс поддерживает прямое редактирование отображаемого программного кода.

Функции системы Oracle, которые не имеют двойников в целевой базе данных SQL Server, будут поддерживаться с помощью определяемых пользователем функций и хранимых процедур. Ограничения, представления и индексы будут преобразованы в соответствующие сущности SQL Server, а типы данных будут отображены на новые так, как показано в табл. 4.9.

Таблица 4.9. Отображение типов данных PL/SQL на T-SQL

PL/SQL

T-SQL

PL/SQL

T-SQL

PL/SQL

T-SQL

Varchar2

Varchar

Date

Datetime

Boolean

Smallint

Char

Char

Long

Text

Number

Numeric

Nvarchar2

Nvarchar

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

Схема Oracle может быть автоматически преобразована в схему SQL Server, при этом все данные будут перенесены в базу данных SQL Server. Во время процесса миграции данных администратор должен предотвращать выполнение всех ограничений, триггеров и прочих зависимостей, которые могут помешать вставке записей в таблицы.

Преобразование бизнес-логики

В табл. 4.10 приведены все преобразования, которые могут выполняться при миграции из PL/SQL в SQL Server.

Таблица 4.10. Преобразования PL/SQL в T-SQL PL/SQL     T-SQL

Внешние объединения

Внешние объединения стандарта ANSI

 

Параметры

Поддерживаются такие параметры, как

First Rows, Index, Append, Merge_Aj, Merge_s j и Merge. Неподдерживаемые параметры игнорируются

 

Boolean

smallint

 

Строковые параметры с не явно указанной длиной

Varchar(8000)

 

Числовые параметры с не явно указанной длиной и точностью

Numeric(38,10)

 

Функции

Пользовательские функции

 

Триггеры:

Триггеры:

 

Before

Instead Of

 

After

After

 

Row-level

эмуляция с помощью курсора

 

Multiple

комбинируются в один

 

Пакетные функции

Пользовательские функции, использующие соглашение ИмяПакета_ИмяПроцедуры.

 

Пакетные переменные

Эмулируются с помощью таблицы и поддерживающих функций

 

Системные функции

Системные или пользовательские функции

 

If-Elsif…Elsif-Else-End

Вложенные операторы if

 

PL/SQL

T-SQL

NULL

SYSDB.SYS.DB_NULL_STATEMENT

Case

Case

Goto

Goto

Loop С оператором Exit ИЛИ Exit When

While (1 = 1) С оператором Break

While

While

For

While

Курсоры:

Курсоры:

с параметрами

множество курсоров

цикл FOR

курсор с локальными переменными

Close имя_курсора

Close имя_курсора И Deallocate имя_курсора

Return

Return

Comments

Comments

Переменные:

Переменные:

Static

разрешаются во время преобразования

С %Туре

группа локальных переменных

С %RowType

группа локальных переменных

Вызовы процедур

Вызовы процедур

Вызовы функций

Вызовы функций

Begin Tran

Begin Tran

Commit

Commit

Rollback

Rollback

SavePoint

Save Transaction

Исключения

В T-SQL эмулируются

Транзакции в T-SQL могут задаваться неявно с помощью установки параметра

SET IMPLICIT_TRANSACTIONS ON ИЛИ ЯВНО С ПОМОЩЬЮ ИНСТРУКЦИЙ BEGIN TRAN И COMMIT TRAN.

Если исключения на целевом сервере отключены, то их обработка выполняться не будет. Если обработка исключений включена, то они будут преобразованы с помощью операторов if/goto и пользовательских функций.

Проверка корректности и интеграция

Интерфейс среды разработки (IDE) предлагает представление SQL, аналогичное сравнению программ новой и старой версий. Он поддерживает модификацию, принятие и отклонение предложенных изменений. Дополнительные параметры синхронизации позволяют переписывать объекты базы данных текущими объектами рабочего пространства, объекты рабочего пространства — объектами базы данных, а также слияние объектов.

Источник: Нильсен, Пол. Microsoft SQL Server 2005. Библия пользователя. : Пер. с англ. — М. : ООО “И.Д. Вильямс”, 2008. — 1232 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии