Каковы рекомендации по переносу базы данных Oracle 10g в Microsoft SQL 2008 R2?Приложение использует Hibernate - PullRequest
2 голосов
/ 20 апреля 2011

В основном то, что говорит название. В дальнейшем нам нужно начать поддерживать обе платформы баз данных (и мы начнем писать миграцию соответственно), но нам нужно сделать первый начальный «порт».

Наши администраторы баз данных уверены, что они могут преобразовать схему, таблицы, типы данных и т. Д., Но наши разработчики имеют меньшую уверенность в том, что DAO будут "просто работать". Может кто-то указать нам на некоторые ресурсы, которые мы можем рассмотреть? Идеально типичные ловушки, которых следует избегать, конкретные тесты для запуска и т. Д. Мы, конечно, запустим полный набор тестов баз данных на уровне приложений, но до этого мы хотим сделать как можно больше подготовки.

Ответы [ 3 ]

4 голосов
/ 20 апреля 2011

Обратите внимание и проверьте производительность под нагрузкой . Oracle делает некоторые вещи принципиально иначе, чем другие поставщики баз данных. Отличная книга Тома Кайта «Эксперт Oracle Database Architecture» указывает на несколько отличий. Пара основных моментов:

  1. Oracle никогда не блокирует данные только для их чтения. Многие другие базы данных делают.
  2. Средство записи данных в Oracle никогда не блокирует читателя. Считыватель данных никогда не блокирует писателя. Опять же, многие другие поставщики делают.

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

1 голос
/ 20 апреля 2011

То же самое (хотя на довольно простой схеме, должен сказать).«Просто работал».Волшебство гибернации.

Я был спокоен, потому что у нас было 100% тестовое покрытие для слоя DAO.Поэтому, когда схема была воссоздана на MS SQL, и некоторые имена таблиц и столбцов были обновлены в отображении (не помню почему, но администраторы баз данных, возможно, придерживаются соглашения об именовании), мы просто запустили наши тесты и не нашли неудачных.1003 *

PS Вспомнил одну интересную деталь: с функциональными тестами все было в порядке.Но когда PTE запускался в базе данных MS SQL, мы обнаружили, что одновременный доступ к одной конкретной таблице был в разы медленнее, чем в Oracle из-за блокировок при распространении.Мы должны были изменить эту функциональность.

0 голосов
/ 20 апреля 2011

Я думаю, что первым шагом было бы получить пустую схему MS SQL, использовать hbm2ddl=true и позволить Hibernate создавать таблицы там. Затем покажите это своим администраторам баз данных и спросите, имеет ли это смысл.

Заполнение данных представляет собой меньшую проблему, я думаю, что запросы будут более скользкими (особенно если в некоторых местах вы используете raw JDBC) Возможно, вы также захотите проверить планы запросов для часто используемых запросов и посмотреть, имеют ли они смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...