17
Миграция приложений Oracle->Sql Server Алексей Ковалев DB-Best Technologies [email protected]

Миграция приложений Oracle-> Sql Server

Embed Size (px)

DESCRIPTION

Миграция приложений Oracle-> Sql Server. Алексей Ковалев DB-Best Technologies [email protected]. Причины и цели миграции Технические проблемы миграции. План доклада. Причины и цели миграции Ожидания от миграции. Причины и цели миграции. Уменьшить стоимость владения и содержания - PowerPoint PPT Presentation

Citation preview

Page 1: Миграция приложений Oracle-> Sql  Server

Миграция приложенийOracle->Sql Server

Алексей Ковалев DB-Best [email protected]

Page 2: Миграция приложений Oracle-> Sql  Server

Причины и цели миграцииТехнические проблемы миграции

План доклада

Page 3: Миграция приложений Oracle-> Sql  Server

Причины и цели миграцииОжидания от миграции

Page 4: Миграция приложений Oracle-> Sql  Server

Причины и цели миграции

• Уменьшить стоимость владения и содержания

• Повысить производительность• Привести ИС к единой платформе• Провести общую ревизию системы

Page 5: Миграция приложений Oracle-> Sql  Server

Что ожидают от миграции

• Приложение работает правильно• Миграция проведена в срок• Производительность не хуже, чем

у исходного приложения

Page 6: Миграция приложений Oracle-> Sql  Server

Технические проблемы миграции

Page 7: Миграция приложений Oracle-> Sql  Server

Объект миграции

DB App

Миграция с

помощью SSMA

Ручная миграция

Page 8: Миграция приложений Oracle-> Sql  Server

Sql Server Migration Assistant•

http://www.microsoft.com/sqlserver/2005/en/us/migration-oracle.aspx

Оценка

Миграция объектов

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

Тестирование

Миграция приложения

Тестирование

SSMA migration analyzer

SSMA data migrator

SSMA migration tester

SSMA schema converter1

2

3

4

Page 9: Миграция приложений Oracle-> Sql  Server

Основные проблемы миграции

• Замена поставщика данных• Различие в типах данных• Различие в поведение SQL кода • Эмуляция встроенных функций Oracle• Динамический и Embedded Sql• Подход к обработке транзакций• Обработка ошибок/исключений• Различие в системных данных и ограничениях

Page 10: Миграция приложений Oracle-> Sql  Server

Замена поставщика данных

• OCI

• ODBC • OleDb• ADO.Net• JDBC• Pro*C

Page 11: Миграция приложений Oracle-> Sql  Server

Типы данных, встроенные функции

• Различие в типах данных• Различие в поведение SQL кода • Эмуляция встроенных функций Oracle

Page 12: Миграция приложений Oracle-> Sql  Server

Динамический SQL

• Тяжело обнаружитьSql зашит в литералах, ресурсах

• Тяжело отлаживатьОкончательный Sql доступен только в

режиме выполнения/отладки• Трудоемкая конверсия

Использовать SSMA->Statements для конверсии

Page 13: Миграция приложений Oracle-> Sql  Server

Embedded Sql, Pro*C

EXEC SQL INSERT INTO emp (empno, comm) VALUES (:emp_number, NULL);

EXEC SQL SELECT ename, sal, comm INTO :emp_name, :salary, :commission:ind_comm FROM emp WHERE empno = :emp_number;

• Большой объем ручной работы по конверсии как Sql кода, так и кода приложения

• Относительно простой поиск (можно искать по ключевым словам типа EXEC SQL и т.д.)

• Достаточно формальная замена на вызовы функций клиентского приложения

• Во многих случаях имеет смысл заменить Embedded sql на вызов ХП, реализующей ту же логику

Page 14: Миграция приложений Oracle-> Sql  Server

Транзакции

• Неявные транзакцииSET IMPLICIT_TRANSACTIONS

• COMMIT в процедурах• DDL• Locks, long running transactions• SET TRANSACTION ISOLATION LEVEL

SNAPSHOT, READ_COMMITTED_SNAPSHOT

• Логика приложения – user input inside transaction

Page 15: Миграция приложений Oracle-> Sql  Server

Обработка ошибок

• NO_DATA_FOUND, TOO_MANY_ROWS• Unique indexes• Разные коды ошибок

User defined message, system messages

Page 16: Миграция приложений Oracle-> Sql  Server

Самая большая проблема

Empty string is null

Page 17: Миграция приложений Oracle-> Sql  Server

Спасибо!Алексей Ковалев DB-Best [email protected]://www.dbbest.com