Как оптимизировать миграцию схемы и данных

Для оптимизации процесса миграции с использованием Конвертум Мастер Классик мы рекомендуем разбить конвертацию на несколько потоков, используя следующий подход:

  • (Экземпляр 1) В первом экземпляре инструмента выберите все таблицы (а также другие объекты — представления, функции и т. д., если они есть), которые необходимо конвертировать.

На странице 'Настройки' выберите 'Tables' в дереве объектов и на вкладке 'Data' снимите флажок 'Экспортировать Данные'. opt_sch_data_1

Это позволит инструменту сконвертировать все DDL, индексы и ограничения, не тратя время на экспорт данных. Затем на вкладке 'DDL' в выпадающем списке выберите 'Table Option'», убедитесь, что для параметра 'Порядок импорта для таблиц' выбрано значение 'Fast' . opt_sch_data_2

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

  • (Экземпляры 2–N) В остальных экземплярах будет выполняться только конвертация данных. На вкладке 'DDL' в разделе 'Настройки' необходимо снять флажок 'Генерировать DDL'. Таким образом, в этих потоках будут загружаться и конвертироваться только данные. opt_sch_data_3

Параметр 'Экспортировать Данные' при этом должен быть включён. opt_sch_data_4

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

a) Если выбраны отдельные таблицы для конвертации, можно указать начальную строку и количество строк для загрузки в разделе 'Tables' на вкладке 'Data'. Например, в одном экземпляре можно загрузить N строк, начиная с первой, а в другом — оставшиеся строки, начиная с N+1, и так далее. Количество таких экземпляров не ограничено. opt_sch_data_5

b) Можно задать SQL-условие для каждой таблицы. Если таблица имеет ключ, можно написать SQL-условие на языке исходной базы данных, которое позволит разбить таблицу на части (подробные инструкции приведены здесь).

Для каждого экземпляра также необходимо выбрать значение 'Fast' для параметра 'Порядок импорта для таблиц'. Далее алгоритм следующий: сначала запустите конвертацию всех потоков (убедитесь, что флажок 'Автоматический запуск импорта' снят во всех потоках). opt_sch_data_6

После завершения конвертации всех таблиц в первом экземпляре (Экземпляр 1) необходимо загрузить ТОЛЬКО DDL этих таблиц в целевую базу данных. Для этого в окне «Import Settings» оставьте отмеченным только пункт 'DDL' (если также мигрируются другие объекты, можно отметить соответствующие пункты, например 'Views', 'Triggers' и т. д.). opt_sch_data_7

Затем необходимо дождаться завершения экспорта данных в каждом потоке и после этого импортировать данные в целевую базу данных (Экземпляры 2–N). Обратите внимание, что в этом случае в окне 'Import Settings' должен быть выбран только пункт 'Data'. opt_sch_data_8

После загрузки всех данных в базу необходимо в основном экземпляре (Экземпляр 1) выбрать в окне 'Import Settings' только 'Indexes' и 'Constraints' и выполнить импорт. opt_sch_data_9

Такой механизм позволяет конвертировать все таблицы и данные в нескольких экземплярах без риска возникновения проблем, связанных с ключами и зависимостями между объектами.

Если у вас возникнут дополнительные вопросы, пожалуйста, свяжитесь с нами по адресу: support@convertum.ru