RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Глава 10. Мастер миграции базы данных

MySQL Workbench обеспечивает способность мигрировать ODBC-базы данных к MySQL.

  • Переносит различные типы БД, включая MySQL между серверами.
  • Преобразует таблицы и скопирует данные, но не преобразует хранимые процедуры, триггеры или представления.
  • Позволяет настройку и редактирование во время процесса миграции.
  • Работает в Linux, macOS и Microsoft Windows.

Это не исчерпывающий список. Следующие разделы обсуждают эти и дополнительные возможности миграции.

Установка может быть самым сложным аспектом использования мастера MySQL Workbench Migration. Есть раздел, который описывает подготовку требований ODBC для Linux, macOS и Microsoft Windows и другой раздел, который поясняет условия установки для каждого RDBMS.

10.1. Общие требования к установке

MySQL Workbench Migration Wizard использует ODBC, чтобы соединиться с исходной базой данных, за исключением MySQL. Вам будет нужен установленный драйвер ODBC, который соответствует базе данных, от которой вы хотите мигрировать. Например, PostgreSQL может мигрировать с драйвером psqlodbc ODBC driver, Microsoft SQL Server может мигрировать со своим драйвером Microsoft SQL Server driver в Windows или FreeTDS в Linux и macOS.

Следующие данные показывают общие компоненты, вовлеченные в связь ODBC: драйвер ODBC для сервера MySQL и другой системы управления реляционными базами данных, ODBC Driver Manager и MySQL Workbench.

Рис. 10.1. Схема установки миграции MySQL Workbench

Content is described in the surrounding text.

Определяя источник RDBMS, можно использовать источник данных, формируемый внешне, или предоставить отдельные параметры связи MySQL Workbench. Если вам уже формировали источник данных ODBC в вашей системе, то можно использовать это в MySQL Workbench.

Процесс миграции не поддерживает источник или цель для связей через SSH.

Обход должен настроить зашифрованный тоннель, а затем рассматривать цель MySQL как стандартную TCP (незашифрованную) связь.

10.1.1. Библиотеки ODBC

Эта секция может быть пропущена, используя MySQL Workbench от Oracle.

Библиотека ODBC Driver Manager должна присутствовать. Windows и macOS обеспечивают ее.

Linux

iODBC: MySQL Workbench от Oracle уже включает iODBC и никакое дополнительное действие не требуется. Если вы собираете пакет сами, необходимо установить iODBC или unixODBC. iODBC рекомендуется. Можно пользоваться библиотекой iODBC, обеспеченной дистрибутивом, устанавливая пакет libiodbc2 на Debian или libiodbc в RPM.

pyodbc: модуль Python, используемый MySQL Workbench, чтобы взаимодействовать с ODBC, может использоваться, чтобы мигрировать базы данных ODBC, такие как PostgreSQL и DB2. В Windows и macOS это включено в Workbench. В Linux исполняемые модули от Oracle также включают pyodbc.

При использовании самособранных модулей удостоверьтесь, что у вас есть последняя версия, и что она собрана с библиотекой менеджера ODBC, которую вы выбрали. С версии 3.0.6 pyodbc собирается с unixODBC по умолчанию. Если вы собираете с iODBC, необходимо выполнить следующие шаги:

  1. Для компилирования удостоверьтесь, что вы установили заголовки iODBC. Для Linux имя зависит от диспетчера пакетов вашей системы, но общие названия libiodbc-devel (RPM) или libiodbc2-dev (Debian). Для macOS заголовки идут с системой, и никакое дополнительное действие не требуется для этого шага.

  2. В исходном каталоге pyodbc отредактируйте файл setup.py и около строки 157 замените settings['libraries'].append('odbc') на settings['libraries'].append('iodbc').
  3. Выполните следующую команду как пользователь root: CFLAGS=`iodbc-config --cflags` LDFLAGS=`iodbc-config --libs` python setup.py install

10.1.2. Драйверы ODBC

Для каждого RDBMS вам нужен его соответствующий драйвер ODBC, который должен также быть установлен на той же самой машине, что и MySQL Workbench. Его обычно предоставляет производитель RDBMS, но в некоторых случаях его могут также предоставить сторонние продавцы или проекты с открытым исходным кодом.

Операционные системы обычно обеспечивают графический интерфейс, чтобы помочь установить драйверы ODBC и источники данных. Используйте это, чтобы установить драйвер (заставьте менеджера ODBC видеть недавно установленный драйвер ODBC). Можно также использовать его, чтобы создать источник данных для определенного случая базы данных, используя ранее установленный драйвер. Как правило, необходимо обеспечить название источника данных (DSN), в дополнение к IP сервера базы данных, порту, имени пользователя и иногда базу данных, к которой у пользователя есть доступ.

Если MySQL Workbench будет в состоянии определить местонахождение менеджера ODBC GUI для вашей системы, то кнопка Open ODBC Administrator на странице обзора мастера миграции откроет его.

  • Linux: Есть несколько утилит GUI, некоторые из которых включены в unixODBC. Обратитесь к документации для вашего дистрибутива. iODBC обеспечивает iodbcadm-gtk.
  • macOS: Можно использовать ODBC Administrator, который является отдельной загрузкой с Apple, или ODBC Management от различного продавца. Если инструмент устанавливается в папку /Applications/Utilities, можно запустить его, используя кнопку Open ODBC Administrator.
  • Microsoft Windows: Можно использовать Data Sources (ODBC) в Administrative Tools. Если существует, кнопка Open ODBC Administrator его запустит.

Архитектура драйвера ODBC.

Так как драйвер ODBC должен быть установлен на клиентской стороне, вам будет нужен драйвер ODBC, который поддерживает вашу операционную систему клиента и архитектуру. Например, если вы управляете MySQL Workbench в Linux x64, тогда вам нужен драйвер Linux x64 ODBC. В macOS MySQL Workbench строится как 32-битное приложение, таким образом, вам нужны 32-битные драйверы.

10.2. Обзор миграции

Migration Wizard выполняет следующие шаги, мигрируя базу данных к MySQL:

  1. Соединяет с источником RDBMS и получает список доступных баз данных/схем.

  2. Перепроектирует выбранную базу данных/схемы во внутреннее представление, определенное для источника RDBMS. Этот шаг также выполнит переименование объектов/схем в зависимости от типа метода отображения имени объекта, который выбран.
  3. Автоматически мигрирует объекты RDBMS в конкретные объекты MySQL.

    1. Создаются целевые объекты схемы.

      1. Столбцы для каждой таблицы копируются.

        1. Типы данных отображаются к типам данных MySQL.

        2. Значения по умолчанию отображаются к поддержанным значениям по умолчанию MySQL, если это возможно.

      2. Индексы преобразовываются.

      3. Primary Keys преобразовываются.
      4. Триггеры копируются и комментируются, если источник не MySQL.

    2. Foreign Keys для всех таблиц (всех схем) преобразовываются.

    3. Объекты представления копируются и комментируются, если источник не MySQL.
    4. Хранимые процедуры и функциональные объекты копируются и комментируются, если источник не MySQL.

  4. Обеспечивается возможность рассмотреть изменения для редактирования и исправления ошибок в объектах.

  5. Создаются объекты в целевом сервере MySQL. Если есть ошибки, можно возвратиться к предыдущему шагу, исправить их и повторить целевое создание.
  6. Копируются данные таблиц из источника в MySQL.

MySQL Workbench оказывает поддержку для перемещения от некоторых определенных продуктов RDBMS. Мастер миграции обеспечит лучшие результаты, мигрируя от таких продуктов. Однако в некоторых случаях другие неподдержанные продукты базы данных могут также мигрироваться при помощи универсальной поддержки БД, пока у вас есть драйвер ODBC. В этом случае миграция будет менее автоматической, но тем не менее должна работать.

10.2.1. Визуальный справочник по выполнению миграции базы данных

Этот пример мигрирует базу данных Microsoft SQL Server к MySQL и включает изображение для каждого шага.

В MySQL Workbench выберите Database и Migrate, чтобы открыть мастера миграции и показать обзор миграции.

Overview

Рис. 10.2. Миграция в MySQL Workbench: обзор

Content is described in the surrounding text.

Это описывает предпосылки и требования, которые должны быть поняты прежде, чем продолжить. Опция Open ODBC Administrator загрузит odbcad32.exe и используется, чтобы подтвердить, что драйвер ODBC для SQL Server установлен и сделать изменения конфигурации в случае необходимости.

Нажмите Start Migration.

Исходный выбор

Выберите источник, который мигрирует к MySQL. Выберите Database System, которая мигрирует, другие параметры связи изменятся соответственно.

Рис. 10.3. Миграция MySQL Workbench: исходный выбор (параметры)

Content is described in the surrounding text.

Целевой выбор

Цель это база данных MySQL, которая будет содержать недавно мигрировавшую базу данных. Текущие подключения Workbench MySQL будут доступны здесь или можно выбрать Manage DB Connections, чтобы создать новую связь.

Рис. 10.4. Миграция MySQL Workbench: Целевой выбор

Content is described in the surrounding text.

Список схем

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

Рис. 10.5. MySQL Workbench: список схем

Content is described in the surrounding text.

Выбор схем

Выберите схемы, которые вы хотите мигрировать.

Опции "Schema Name Mapping Method" для миграции с Microsoft SQL Server:

  • Сохраните схемы так: Catalog.Schema.Table -> Schema.Table: Это создаст много баз данных, одну на схему.
  • Only one schema: Catalog.Schema.Table -> Catalog.Table: Merges each schema into a single database. Следующие данные показывают пример этого метода отображения.
  • Only one schema, keep current schema names as a prefix: Catalog.Schema.Table -> Catalog.Schema_table: Сохраняет название схемы как префикс.

Рис. 10.6. MySQL Workbench: Выбор схем

Content is described in the surrounding text.

Перепроектируйте источник

Исходные метаданные получены из источника и затем перепроектированы. Это автоматизированный информационный шаг, который сообщает о связанных ошибках и общей информации. Просмотрите журнал и затем нажмите Next.

Рис. 10.7. MySQL Workbench: Перепроектируйте источник

Content is described in the surrounding text.

Исходные объекты

Обнаруженные на стадии Reverse Engineer Source объекты показаны и сделаны доступными. Результаты включают таблицу, представление и сохраненные подпрограммы, только объекты таблицы выбраны по умолчанию.

Рис. 10.8. MySQL Workbench: Исходные объекты

Content is described in the surrounding text.

Миграция

Процесс миграции теперь преобразовывает выбранные объекты в совместимые объекты MySQL.

Рис. 10.9. MySQL Workbench: миграция

Content is described in the surrounding text.

Ручное редактирование

Есть три секции, чтобы отредактировать, которые выбраны при помощи блока View справа вверху. Кнопка Show Code and Messages доступна с каждым представлением, она покажет произведенный код MySQL, который соответствует выбранному объекту.

  • Проблемы миграции: Это сообщит о проблемах или покажет "No mapping problems found.".

    Рис. 10.10. MySQL Workbench: Редактирование (проблемы миграции)

    Content is described in the surrounding text.
  • All Objects: представление объекта, которое позволяет вам рассматривать и редактировать определения объектов. Дважды щелкните по строке, чтобы изменить имя целевых объектов.

    Рис. 10.11. MySQL Workbench: Редактирование (все объекты)

    Content is described in the surrounding text.
  • Column Mappings: показывает все отображения столбца таблицы и позволяет вам индивидуально просматривать и исправлять отображение для всех типов столбца, значений по умолчанию и других признаков.

    Рис. 10.12. MySQL Workbench: Редактирование (отображения столбцов)

    Content is described in the surrounding text.

Целевые варианты создания

Схема может быть создана добавлением к целевой RDBMS, создав файл скрипта SQL или обоими способами.

Рис. 10.13. MySQL Workbench: Целевые варианты создания

Content is described in the surrounding text.

Создание схемы

Теперь схема создается. Полный журнал также доступен здесь.

Рис. 10.14. MySQL Workbench: Создание схемы

Content is described in the surrounding text.

Создайте целевые результаты

Произведенные объекты в этом примере перечисляются наряду с сообщениями об ошибках, если они есть.

Код миграции может также быть рассмотрен и отредактирован здесь. Чтобы внести изменения, выберите объект, отредактируйте код запроса и затем нажмите Apply. Повторите этот процесс для каждого объекта, который будет отредактирован. Наконец, нажмите Recreate Objects, чтобы сохранить результаты. Recreate Objects требуется, чтобы сохранить любые изменения здесь. Это тогда выполнит предыдущий шаг миграции (Create Schema) с измененным кодом, и затем продолжит процесс миграции. Это также означает, что ранее сохраненная схема будет сброшена.

Рис. 10.15. MySQL Workbench: создайте целевые результаты

Content is described in the surrounding text.

Установка передачи данных

Следующий шаг передает данные из источника RDBMS к целевой базе данных MySQL. Экран установки включает следующие варианты:

Data Copy:

  • Online copy of table data to target RDBMS : Этот метод (по умолчанию) скопирует данные к целевой RDBMS.
  • Create a batch file to copy the data at another time: Данные могут также быть сброшены в дамп, который может прочитаться в более позднее время или использоваться в качестве резервной копии. Это использует подключение MySQL, чтобы передать данные.
  • Create a shell script to use native server dump and load abilities for fast migration: В отличие от простого пакетного файла, который выполняет живую копию онлайн, это производит скрипт, который будет выполнен на хосте источника, чтобы произвести zip-файл, содержащий все данные и информацию, чтобы мигрировать данные локально. Скопируйте и распакуйте произведенный zip-файл на целевом хосте и затем выполните скрипт импорта (на целевом хосте), чтобы импортировать данные в MySQL, используя LOAD DATA.

    Этот более быстрый метод избегает потребности передачи всех данных через MySQL Workbench или иметь постоянное сетевое соединение между серверами MySQL. Этот выбор был добавлен в MySQL Workbench 6.3.0.

Опции:

  • Truncate target tables before copying data: В случае, если целевая база данных уже существует, это удалит ее.
  • Worker tasks: The default value is 2. Это количество задач (соединений с базой данных), используемых, копируя данные.
  • Enable debug output for table copy: Поазать отладочную информацию.

Рис. 10.16. MySQL Workbench: установка передачи данных

Content is described in the surrounding text.

Оптовая передача данных

В зависимости от выбранного выбора это передаст данные целевой RDMS (по умолчанию), произведет простой скрипт для передачи данных онлайн или произведет скрипт, чтобы выполнить на исходном хосте, который тогда производит zip-файл, содержащий скрипт передачи и данные, который будет выполнен на целевом хосте. Произвольно, просмотрите журнал в поисках ошибок.

Рис. 10.17. MySQL Workbench: оптовая передача данных

Content is described in the surrounding text.

Отчет о миграции

И наконец, отчет о миграции доступен и суммирует весь процесс миграции.

Рис. 10.18. MySQL Workbench: Отчет о миграции

Content is described in the surrounding text.

Нажим Finish закроет окно миграции. Если вы выбрали копию онлайн, база данных может теперь быть просмотрена в MySQL Workbench SQL editor.

Рис. 10.19. MySQL Workbench: просмотр мигрировавшей базы данных

Content is described in the surrounding text.

Если вкладка MySQL Workbench SQL Editor уже открыта, то список схем в Object Browser должен быть освежен, чтобы просмотреть недавно импортированную схему.

10.2.2. Миграция от поддержанных баз данных

Когда поддержанный продукт RDBMS будет использован для миграции, мастер MySQL Workbench Migration Wizard автоматически преобразует столько информации, сколько может, но все еще надо вручную редактировать автоматически перенесенную схему для трудных случаев или когда отображение по умолчанию не такое.

Вообще говоря, только информация о таблице и ее данные автоматически преобразовываются в MySQL. Кодовые объекты, такие как представления, хранимые процедуры и триггеры, нет. Но поддержанные данные RDBMS будут получены и показаны в мастере. Можно тогда вручную преобразовать их или сохранить для преобразования в более позднее время.

Следующие продукты RDBMS и версии в настоящее время проверяются и поддерживаются мастером MySQL Workbench Migration Wizard, хотя другие продукты RDBMS могут быть также перенесены, см. раздел 10.2.3:

  • Microsoft SQL Server 2000 и позже.
  • Microsoft Access 2007 и позже.
  • MySQL Server 5.6 и позже как источник, MySQL Server 5.6 и позже как цель.
  • PostgreSQL 8.0 и позже.
  • SQL Anywhere
  • SQLite
  • Sybase Adaptive Server Enterprise 15.x и позже.

10.2.3. Миграция от неподдержанных баз данных

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

Используя универсальную поддержку, типы данных столбцов отображены, используя следующие шаги:

  1. Это ищет первый вход в Generic Datatype Mapping Table для исходного имени типа. Если длина/диапазоны входа будет соответствовать столбцу источника, это выберет тот тип. Иначе это продолжает искать.

  2. Если никакие совпадения не были найдены в универсальной таблице, то система пытается непосредственно отобразить исходный тип к типу MySQL с тем же самым именем.
  3. Если исходное имя типа не соответствует ни одному из типов данных MySQL, то оно не преобразовывается, и ошибка будет зарегистрирована. Отсюда можно определить целевой тип данных на шаге Manual Object Editing в мастере.

10.3. Концептуальные эквиваленты DBMS

Следующая таблица показывает сравнение между каждым продуктом DBMS, поддержанным мастером Migration Wizard и MySQL.

Таблица 10.1. Концептуальные эквиваленты между поддержанными продуктами DBMS и MySQL

Понятие MS SQL Server Sybase ASE PostgreSQL MySQL Примечание
Идентификация Да Да Да Да
Auto_Increment Да Да Да Да PostgreSQL использует последовательности для Auto_Increment.
Резервная копия Да Да Да Да См. MySQL Enterprise Backup.
Catalog Да Да Да N/A Можно отобразить каталог в схему и пропустить ownerobject, использовать владельца в качестве названия схемы или слить владельца и имя объекта вместе.
Constraints Да Да Да Да
Data Dictionary N/A
Database Да Да Да Да
Database Instance
Дамп Да Да Да Да mysqldump
События Да Да Да Да
Foreign Keys Да Да Да Да
Full Text Search Да Да Да Да В InnoDB, начиная с MySQL Server 5.6 и во всех версиях MyISAM.
Индекс Да Да Да Да
Information Schema Да No Да Да
Чувствительность к регистру имен объектов Зависит от сопоставления Зависит от сопоставления Смешано Смешано MySQL: чувствительность имен базы данных, таблиц и триггеров зависит от операционной системы, другие имена объектов нечувствительны к регистру. PostgreSQL: соответственно стандарту SQL-99, непроцитированные имена объектов рассматриваются как нечувствительные к регистру, в то время как цитированные имена объектов чувствительные к регистру. В отличие от стандарта, непроцитированные имена объектов преобразовываются в строчные буквы вместо верхнего регистра.
Соглашения об именах объекта Да Да Да Да
Packages N/A N/A N/A N/A
Разделение Да Да Да Да
Performance Schema N/A N/A Да Да
Права доступа и управления Да Да Да Да
Primary Key Да Да Да Да
Ссылочная целостность Да Да Да Да Sybase ASE: ссылочная целостность только через триггеры.
Репликация Да Да Да Да
Роли Да Да Да N/A Роли не доступны в MySQL на уровне базы данных.
Schema Да Да* Да Да Эквивалентно базе данных в MySQL. Sybase ASE: схемы соответствуют именам пользователей.
Sequences Да* Да* Да Да* Автономные объекты последовательности не поддерживаются в MySQL. Схожая функциональность может быть получена со столбцами IDENTITY в MSSQL и AUTO_INCREMENT в MySQL.
Режимы SQL Да Да Да SET_ANSI_* в MSSQL
Механизмы хранения N/A N/A Да* Да PostgreSQL поддерживает и использует только один механизм хранения (Postgresql). Другие компании добавили дополнительные механизмы хранения к PostgreSQL.
Stored Procedures Да Да Да Да
Синонимы N/A N/A N/A N/A
Таблица Да Да Да Да
Табличное простанство Да Да* Да N/A MSSQL группирует таблицы в схемах (что-то вроде CREATE TABLESPACE). Sybase ASE: таблицы сгруппированы в схемах, которые больше похожи на имена пользователей.
Временные таблицы Да Да Да Да
Транзакции Да Да Да Да
Триггеры Да Да Да Да
UDF Да Да Да Да
Unicode Да Да Да Да
Unique Key Да Да Да Да
Пользователь Да Да Да Да
Представления Да Да Да Да

Обработка структурных различий Microsoft SQL Server и MySQL.

База данных Microsoft SQL Server составлена из одного каталога и одной или более схем. MySQL только поддерживает одну схему для каждой базы данных (или скорее база данных MySQL это схема), таким образом, это различие в дизайне должно быть запланировано. Mастер Migration Wizard должен знать, как обращаться с миграцией схем для исходной базы данных (Microsoft SQL Server). Это может сохранить все схемы как есть (мастер миграции создаст одну базу данных на схему) или слить их в единственную базу данных MySQL. Дополнительные варианты включают: удалить названия схемы (мастер миграции будет обращаться с возможными столкновениями имен, которые могут появиться по ходу дела) или добавить название схемы к именам объектов базы данных как префикс.

10.4. Миграция Microsoft Access

Эта опция была добавлена в MySQL Workbench 6.2.0.

Общая информация

Microsoft Windows требуется, потому что драйверы Microsoft Access ODBC доступны только в Windows. Что касается места назначения, сервер MySQL может быть на той же самой машине или в другом месте в вашей сети.

Подготовка базы данных Microsoft Access для миграции

Microsoft Access Microsoft Access хранит информацию отношений/внешнего ключа во внутренней таблице под названием MSysRelationships. Таблица защищена от доступа для чтения даже пользователем Admin, поэтому при попытке мигрировать, не открывая доступ к ней, вы получите ошибку:

[42000] [Microsoft][ODBC Microsoft Access Driver] Record(s)
        cannot be read; no read permission on 'msysobjects'.
        (-1907) (SQLExecDirectW)

Шаги, чтобы предоставить доступ для чтения роли Admin (Microsoft Access 2007):

  • Откройте базу данных в Microsoft Access.
  • Из ленты Database Tools нажмите Visual Basic, чтобы открыть консоль Visual Basic (VB).

    Рис. 10.20. Местонахождение инструмента Visual Basic Macro Database

    Content is described in the surrounding text.
  • Чтобы подтвердить, что вы вошли как пользователь "Admin", определите местонахождение панели Immediate, напечатайте "? CurrentUser" и нажмите Enter. Это должно вывести "Admin" под "? CurrentUser" в панели.

  • Также в Immediate введите следующую команду, чтобы предоставить доступ:
    CurrentProject.Connection.Execute "GRANT SELECT ON MSysRelationships TO Admin"
    

    Рис. 10.21. GRANT SELECT ON MSysRelationships TO Admin

    Content is described in the surrounding text.
  • Закройте Microsoft Access.

Запуск мастера MySQL Workbench Migration Wizard

От главного экрана MySQL Workbench можно запустить мастер Migration Wizard, щелкнув по кнопке ( ) в боковой панели Workbench или выбрав из главного меню Database, Migration Wizard.

Рис. 10.22. Страница обзора миграции

Content is described in the surrounding text.

Подготовка драйверов ODBC

Чтобы проверить, что вы установили драйвер ODBC, нажмите Open ODBC Administrator со страницы обзора миграции MySQL Workbench, чтобы открыть системный инструмент ODBC. Затем выберите вкладку Drivers.

Рис. 10.23. Проверка драйверов ODBC для Access

Content is described in the surrounding text.

У MySQL Workbench есть 64-битный исполняемый файл. Драйверы ODBC, которые вы используете, должны иметь ту же самую архитектуру. Если во время миграции вы получаете ошибку ODBC "architecture mismatch between the Driver and Application", вы установили неверную версию MySQL Workbench.

На вкладке User DSN нажмите Add, чтобы создать DSN для вашего файла базы данных.

Рис. 10.24. Добавление нового DSN

Content is described in the surrounding text.

Подготовка исходных параметров

Нажмите Start Migration на странице Overview, чтобы продвинуться на страницу Source Selection. Здесь необходимо предоставить информацию о базе данных Access, с которой вы мигрируете, драйвере ODBC и параметры для связи.

Откройте комбинированное окно Database System для списка поддерживаемых RDBMS и выберите Microsoft Access из списка. Есть другое комбинированное окно ниже Stored Connection. Это перечисляет сохраненные настройки подключения для этой RDBMS. Можно сохранить связи, отметив флажок внизу страницы, наряду с названием связи.

Следующее комбинированное окно выбирает Connection Method. На этот раз мы собираемся выбрать ODBC Data Source из списка. Это позволяет вам выбирать созданные ранее DSN, которые вы формировали в своей системе.

Список DSN имеет все DSN, которые вы определили в своей системе. Выберите тот, который вы создали для базы данных Access.

В поле Default Character Set можно выбрать набор символов базы данных. Если ваша версия Access использует символы western/latin, можно оставить по умолчанию cp1252. Однако, если вы используете локализованную версию Access, необходимо ввести правильный набор символов, используемый выпуском Microsoft Office, иначе данные будут скопированы неправильно.

Рис. 10.25. Исходный выбор Access

Content is described in the surrounding text.

Наконец, нажмите Test Connection, чтобы проверить, может ли связь ODBC быть установлена. Если вы вошли в правильные параметры, то увидите сообщение об успешной попытке подключения.

Подготовка целевых параметров

Затем, настройте целевые параметры базы данных (MySQL), определив параметры, которые соединяются с вашим экземпляром MySQL Server. По окончании нажмите Test Connection, чтобы проверить определение связи.

Рис. 10.26. Целевой выбор базы данных

Content is described in the surrounding text.

Выберите объекты миграции

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

Рис. 10.27. Результат анализа источника

Content is described in the surrounding text.

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

Рис. 10.28. Исходные объекты

Content is described in the surrounding text.

В предыдущем примере мастер миграции обнаружил таблицу и объекты представления для исходной базы данных. Только объект таблицы выбран по умолчанию для миграции. Можно также выбрать объекты представления, но необходимо также предоставить их соответствующий MySQL эквивалентный код позже (никакая автоматическая миграция недоступна для них), таким образом, наш пример оставит представления непроверенными. То же самое касается хранимых процедур, функций и триггеров.

Нажмите Show Selection, чтобы формировать точно, какие объекты вы хотите мигрировать.

Рис. 10.29. Выбор исходных объектов

Content is described in the surrounding text.

Объекты справа будут мигрироваться. Фильтр может отфильтровать список (подстановочные знаки позволены, как продемонстрировано выше). При помощи кнопок стрелки можно отфильтровать объекты, которые вы не хотите мигрировать. Очистите текст фильтра, чтобы проверить полный список выбранных объектов. Наш пример мигрирует все объекты таблицы, таким образом, все они находятся в списке Objects to Migrate и флажок Migrate Table Objects отмечен.

Рассмотрите предложенную миграцию

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

Рис. 10.30. Редактирование вручную: начальная страница

Content is described in the surrounding text.

Блок View изменяет способ, которым показывают мигрировавшие объекты базы данных. Нажмите Show Code, чтобы смотреть и отредактировать произведенный код MySQL, который соответствует выбранному объекту. Кроме того, можно дважды щелкнуть по элементу в дереве объектов, чтобы отредактировать имя объекта или дважды щелкнуть по строке базы данных, чтобы изменить ее название.

Рис. 10.31. Редактирование вручную: все объекты

Content is described in the surrounding text.

Блок View также имеет опцию Column Mappings. Это показывает столбцы таблицы и позволяет вам просматривать и менять отображение типов столбца, значения по умолчанию и другие признаки.

Рис. 10.32. Отображения столбцов

Content is described in the surrounding text.

Создайте объекты базы данных

Теперь откроется страница Target Creation Options.

Рис. 10.33. Целевые варианты создания

Content is described in the surrounding text.

Используйте варианты целевого создания, чтобы выполнить произведенный код в целевой RDBMS или можно сбросить его в файл скрипта SQL. Код SQL будет выполнен на целевом сервере MySQL. Можно рассмотреть его работу на странице Create Schemas.

Рис. 10.34. Создает схемы

Content is described in the surrounding text.

Когда создание схем и объектов, закончено можно перейти к странице Create Target Results. Это представляет список созданных объектов и включает любые произведенные ошибки, в то время как они были созданы.

Рис. 10.35. Созданы целевые результаты

Content is described in the surrounding text.

Можно отредактировать код миграции, используя код справа и сохранить изменения при нажатии Apply. Если правки были сделаны, все еще необходимо создать объекты с измененным кодом, чтобы выполнить изменения. Это сделано при нажатии Recreate Objects. В этой обучающей программе мы ничего не изменяем, так что оставьте код как есть и переходите к странице Data Transfer Setup.

Передайте данные базе данных MySQL

Следующий шаг передает данные из исходной базы данных Access в вашу недавно созданную целевую базу данных MySQL. Страница Data Transfer Setup позволяет вам формировать этот процесс.

Рис. 10.36. Data Transfer Setup

Content is described in the surrounding text.

Есть два варианта. Первый позволяет вам выполнять живой перенос и/или сбросить данные в пакетный файл, который можно выполнить позже. Другой вариант позволяет вам изменять этот процесс.

Эта обучающая программа использует значения по умолчанию для вариантов на этой странице. Затем данные передаются. В этом пункте соответствующая страница прогресса подтверждает выполняемые задачи.

Рис. 10.37. Оптовая передача данных

Content is described in the surrounding text.

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

Проверка

Теперь, когда база данных успешно мигрировала, можно рассмотреть результаты. Откройте SQL Editor, который связан с вашим сервером MySQL, затем запросите базу данных. Например, выполните запрос SELECT * FROM northwind.customers, который наполнит сетку результата.

Рис. 10.38. Проверка ваших результатов

Content is described in the surrounding text.

10.5. Миграция Microsoft SQL Server

MySQL Workbench Migration Wizard проверен для следующих версий Microsoft SQL Server: 2000, 2005, 2008 и 2012.

10.5.1. Приготовления

Чтобы быть в состоянии мигрировать от Microsoft SQL Server, гарантируйте следующее:

  • Исходный экземпляр SQL Server работает и принимает соединения по протоколу TCP.
  • Вы знаете IP и порт исходного экземпляра SQL Server. Если вы будете мигрировать, используя драйвер Microsoft ODBC для SQL Server (умолчание в Windows), необходимо знать имя хоста и название экземпляра SQL Server.
  • Удостоверьтесь, что SQL Server достижим от машины с MySQL Workbench. Более определенно проверьте параметры настройки брандмауэра.
  • Удостоверьтесь, что у учетной записи пользователя есть надлежащие привилегии к базе данных, которая будет мигрировать.

10.5.2. Драйверы

Microsoft Windows не требует дополнительные драйверы, которые будут устанавливаться и формироваться, но Linux (и macOS) потребуют. Следующие разделы включают конкретные инструкции для каждого типа системы.

10.5.2.1. Microsoft Windows

Microsoft Windows XP и более новые включают по крайней мере одного драйвер ODBC для Microsoft SQL Server, таким образом, дополнительные действия, вероятно, не требуются на вашей системе. Много вариантов драйвера SQL Server существуют, как описано в этой секции.

Можно проверить информацию о драйвере ODBC, запустив Windows ODBC Data Source Administrator, который доступен с домашней страницы мастера миграции MySQL Workbench. Альтернативно, откройте терминал Windows и выполните odbcad32.exe. Откройте вкладку Drivers, чтобы видеть что-то подобное:

Рис. 10.39. Windows ODBC Data Source Administrator: Драйверы SQL Server

Content is described in the surrounding text.

Общие драйверы ODBC, доступные в Windows:

  • SQL Driver: предварительно установленный в Windows, но ограничивается функциональностью, обеспеченной SQL Server 2000. Это функционирует хорошо, если ваша база данных не использует функции и типы данных, введенные после SQL Server 2000, таким образом, это должно быть достаточно для вас, если ваша база данных не использует новые особенности и типы данных, введенные после этой версии SQL Server.
  • SQL Server Native Client XX.X: если у вас будет экземпляр SQL Server на той же самой машине, где MySQL Workbench, то у вас также будет этот дополнительный драйвер. Это идет с SQL Server и полностью поддерживает сопутствующую версию SQL Server. Если это не находится на вашей системе, тогда можно загрузить и установить. Например, загрузите Microsoft SQL Server 2014 Feature Pack, чтобы установить Native Client, который поддерживает SQL Server 2014 и ранее.

    XX.X представляет номер основной версии для SQL Server, таким образом, подлинное имя могло бы быть "SQL Server Native Client 11.0".

Решите, какой драйвер вы хотите использовать, и помните его имя как показано в ODBC Data Source Administrator. Это собственное имя используется в MySQL Workbench, чтобы соединиться с вашим экземпляром SQL Server.

10.5.2.2. Linux

Подготовка драйверов в Linux.

FreeTDS

FreeTDS version 0.92 или больше требуется. Многие дистрибутивы предлагают более старые версии FreeTDS, таким образом, это, возможно, должно быть установлено отдельно. Кроме того, версия FreeTDS, обеспеченная дистрибутивом, может также быть собрана для неправильной библиотеки ODBC (обычно unixODBC вместо iODBC, с которой работает MySQL Workbench). Из-за этого необходимо будет, вероятно, построить эту библиотеку самому.

Скрипт предоставлен, чтобы собрать FreeTDS, используя варианты, требуемые для MySQL Workbench. Можно найти его в /usr/share/mysql-workbench/extras/build_freetds.sh в Linux или в MySQLWorkbench.app/Contents/SharedSupport/build_freetds.sh в macOS. Чтобы использовать его, выполните эти шаги:

Использование FreeTDS с iODBC.

Собирая FreeTDS для использования с iODBC, это должно быть собрано с командной строкой --enable-odbc-wide. Обеспеченный скрипт build_freetds.sh делает это для вас.

  1. Для компилирования удостоверьтесь, что установили заголовки iODBC. Для Linux имя зависит от диспетчера пакетов вашей системы, но общие названия libiodbc-devel (RPM-системы) или libiodbc2-dev (Debian-системы). Для macOS заголовки идут с системой, и никакое дополнительное действие не требуется для этого шага.

    При использовании Oracle Enterprise Linux, Redhat, CentOS и подобных необходимо настроить хранилище EPEL в yum, чтобы найти пакет libiodbc-devel. См. здесь.

  2. mkdir ~/freetds, чтобы создать каталог в рамках пользовательского корневого каталога.
  3. Скопируйте скрипт build_freetds.sh в ~/freetds.
  4. Получите последние исходные тексты FreeTDS с ftp://ftp.freetds.org/pub/freetds/ и поместите файл .tar.gz в каталог ~/freetds. Удостоверьтесь, что получили версию 0.92 FreeTDS или более новую.
  5. cd ~/freetds
  6. Выполните build_freetds.sh.
  7. После того, как компиляция сделана, установите пакет с помощью make install из пути, данного скриптом.
  8. Установите драйвер, используя ODBC Administrator так, чтобы подсистема ODBC признала его. Откройте ODBC Administrator с вкладки миграции в MySQL Workbench.

    Рис. 10.40. Откройте ODBC Administrator

    Content is described in the surrounding text.

    Название файла драйвера libtdsodbc.so, он расположен в /usr/lib или /usr/local/lib. Например, на вкладке ODBC Drivers нажмите Add Driver и заполните описание (имя) и путь к файлу драйвера. Помните имя, которое вы определяете здесь, поскольку оно будет необходимо позже. Сохраните драйвер.

    Рис. 10.41. ODBC Driver Add/Setup

    Content is described in the surrounding text.

    Только имя файла драйвера требуется, в то время как имя настроечного файла может остаться неопределенным.

  9. Закройте ODBC Administrator и нажмите Start Migration. Для получения информации о создании связи Microsoft SQL Server, используя MySQL Workbench, см. раздел 10.5.3.2.

10.5.2.3. macOS

Посмотрите примечания установки FreeTDS для Linux, раздел 10.5.2.2.

10.5.3. Установка связи

Эта секция сосредотачивается на создании связи с исходным Microsoft SQL Server, потому что создание подключения MySQL является стандартной операцией.

Предпосылка: вы уже установили и формировали необходимый драйвер Microsoft SQL Server на системе с MySQL Workbench.

10.5.3.1. Microsoft Windows

Выберите Microsoft SQL Server как систему баз данных и заполните опции, как описано в этой секции.

Рис. 10.42. SQL Server Connection Parameters: пример в Windows

Content is described in the surrounding text.
  • Database System: Microsoft SQL Server

  • Connection Method: выберите ODBC (native), чтобы использовать драйвер native ODBC, который предоставляет Microsoft. Альтернативы включают "ODBC data sources" и "ODBC FreeTDS". FreeTDS это популярный драйвер с открытым исходным кодом для SQL Server и Sybase.
  • Driver: используйте имя драйвера SQL Server, как описано в разделе 10.5.2.1. Как правило, это будет "SQL Server" или что-то вроде "SQL Server Native Client 11.0".
  • Server: адрес и произвольно имя экземпляра SQL-сервера, например, "example.com" или "example.org\SQLEXPRESS".
  • Username: имя пользователя SQL Server.
  • Password: произвольно введите пароль, чтобы сохранить его локально, или оставьте его незаполненным, чтобы ввести пароль, когда связь с SQL Server будет установлена позже.
  • Database: произвольно имя базы данных. Оставьте его незаполненным, чтобы выбрать имя базы данных после того, как мастер MySQL Workbench получит доступные базы данных.
  • Store connection for future: произвольно сохраните детали связи локально для будущего использования, ставя этот флажок и вводя имя для связи.
  • Advanced: произвольно войдите в дополнительные опции.

Нажмите Test Connection, чтобы подтвердить, что параметры правильны.

10.5.3.2. Linux

Выберите Microsoft SQL Server как исходную систему баз данных и заполните опции, как описано в этой секции.

Рис. 10.43. SQL Server Connection Parameters: пример в Linux

Content is described in the surrounding text.

Параметры связи включают:

  • Database System: Microsoft SQL Server.
  • Connection Method: выберите ODBC (FreeTDS), чтобы использовать местный FreeTDS, который был установлен раньше. Для получения дополнительной информации о том, как установить драйвер FreeTDS в Linux, который будет работать с мастером миграции MySQL Workbench, см. раздел 10.5.2.2 .

    Альтернативно, выберите ODBC Data Source (FreeTDS), если вы определили DSN, создавая драйвер SQL Server. Доступные предварительно сконфигурированные варианты DSN будут доступны, чтобы выбрать.

  • Driver: имя драйвера, которое вы создали с ODBC Administrator, см. раздел 10.5.2.2 .

    Имя в качестве примера "Workbench FreeTDS" или "FreeTDS", но это имя, которое вы определили ранее, таким образом, это может или может не быть "FreeTDS". Используйте ODBC Administrator, чтобы найти правильное имя драйвера, поскольку иначе связь прервется.

  • Hostname: адрес и имя экземпляра SQL-сервера, например, "example.org".
  • Port: номер порта. Номер порта 1433 обычно используется для сервера Microsoft SQL.
  • Username: имя пользователя на SQL-сервере.
  • Password: произвольно введите пароль или оставьте его незаполненным, чтобы ввести пароль, когда связь с SQL Server будет установлена.
  • Database: произвольно имя базы данных. Оставьте его незаполненным, чтобы выбрать имя базы данных после того, как мастер MySQL Workbench получит доступные базы данных.
  • Store connection for future: произвольно сохраните детали связи для будущего использования, ставя этот флажок и вводя имя для связи.
  • Advanced: Отключите опцию Driver sends Unicode data as UTF-8, чтобы использовать UCS-2.

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

Нажмите Test Connection, чтобы подтвердить, что параметры правильны.

10.5.3.3. macOS

Параметры связи подобны Linux, см. раздел 10.5.3.2.

10.5.4. Отображение типов Microsoft SQL Server

Следующая таблица показывает отображение между типами данных Microsoft SQL Server (источник) и MySQL.

Таблица 10.2. Отображение типов

Исходный тип Тип в MySQL Комментарий
INT INT
TINYINT TINYINT Флаг UNSIGNED установлен в MySQL.
SMALLINT SMALLINT
BIGINT BIGINT
BIT TINYINT(1)
FLOAT FLOAT Значение точности используется для размера ресурса хранения в обоих.
REAL FLOAT
NUMERIC DECIMAL
DECIMAL DECIMAL
MONEY DECIMAL
SMALLMONEY DECIMAL
CHAR CHAR/LONGTEXT В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы CHAR с длиной до 255 знаков. Что-либо большее мигрируется как LONGTEXT.
NCHAR CHAR/LONGTEXT В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR с длиной до 65535 знаков. Что-либо большее мигрируется к одному из типов TEXT. В MySQL набор символов строки зависит от набора символов столбца вместо типа данных.
VARCHAR VARCHAR/MEDIUMTEXT/LONGTEXT В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR с длиной до 65535 знаков. Что-либо большее мигрируется к одному из типов TEXT.
NVARCHAR VARCHAR/MEDIUMTEXT/LONGTEXT В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR с длиной до 65535 знаков. Что-либо большее мигрируется к одному из типов TEXT. В MySQL набор символов строки зависит от набора символов столбца вместо типа данных.
DATE DATE
DATETIME DATETIME
DATETIME2 DATETIME Диапазон дат в MySQL: от '1000-01-01 00:00:00.000000' до '9999-12-31 23:59:59.999999'. Доли секунды сохранены, начиная с MySQL Server 5.6.4.
SMALLDATETIME DATETIME
DATETIMEOFFSET DATETIME
TIME TIME
TIMESTAMP TIMESTAMP
ROWVERSION TIMESTAMP
BINARY BINARY/MEDIUMBLOB/LONGBLOB В зависимости от его длины.
VARBINARY VARBINARY/MEDIUMBLOB/LONGBLOB В зависимости от его длины.
TEXT VARCHAR/MEDIUMTEXT/LONGTEXT В зависимости от его длины.
NTEXT VARCHAR/MEDIUMTEXT/LONGTEXT В зависимости от его длины.
IMAGE TINYBLOB/MEDIUMBLOB/LONGBLOB В зависимости от его длины.
SQL_VARIANT Миграция не поддерживается. Нет определенной поддержки этого типа данных.
TABLE Миграция не поддерживается. Нет определенной поддержки этого типа данных.
HIERARCHYID Миграция не поддерживается. Нет определенной поддержки этого типа данных.
UNIQUEIDENTIFIER VARCHAR(64) Уникальный флаг установлен в MySQL. Нет определенной поддержки вставки значений уникального идентификатора.
SYSNAME VARCHAR(160)
XML TEXT

10.6. Миграция PostgreSQL

10.6.1. Подготовка

Перед переходом вам будет нужно следующее:

  • Следуйте инструкции по установке iODBC на вашей системе. Для получения дополнительной информации посмотрите раздел 10.1.
  • Доступ к серверу PostgreSQL с привилегиями для базы данных, которую вы хотите мигрировать. Migration Wizard официально поддерживает PostgreSQL 8.0 и позже, хотя более старые версии могут работать.
  • Доступ к MySQL Server с привилегиями для базы данных, которую вы хотите мигрировать. Migration Wizard официально поддерживает MySQL 5.0 и позже.

10.6.2. Драйверы

10.6.2.1. Microsoft Windows

Загрузите и установите пакет MSI для psqlODBC. Выберите новейший файл на http://www.postgresql.org/ftp/odbc/versions/msi/, который будет внизу страницы загрузок. Это установит psqlODBC на вашей системе и позволит вам мигрировать от Postgresql на MySQL с помощью MySQL Workbench.

10.6.2.2. Linux

После установки iODBC, продолжите устанавливать драйверы PostgreSQL ODBC.

Загрузите исходные тексты psqlODBC с http://www.postgresql.org/ftp/odbc/versions/src/. Имя файла будет выглядеть подобно psqlodbc-09.03.0400.tar.gz. Распакуйте архив, откройте терминал и перейдите в нужный каталог. Процесс установки:

shell> cd the/src/directory
shell> ./configure --with-iodbc --enable-pthreads
shell> make
shell> sudo make install

Проверьте установку, подтвердив, что файл psqlodbcw.so в каталоге /usr/local/lib.

Затем необходимо зарегистрировать новый драйвер ODBC.

Откройте iODBC Data Source Administrator, выполнив iodbcadm-gtk в командной строке или запуском со страницы Overview в MySQL Workbench Migration Wizard, нажав кнопку Open ODBC Administrator.

Откройте вкладку ODBC Drivers в iODBC Data Source Administrator.

Рис. 10.44. iODBC Data Source Administrator

Content is described in the surrounding text.

Нажмите Add a driver и заполните форму следующими значениями:

  • Description of the driver: psqlODBC.
  • Driver file name: /usr/local/lib/psqlodbcw.so.
  • Setup file name: Пустая строка.

Нажмите кнопку OK.

10.6.2.3. macOS

Чтобы собрать psqlODBC в macOS, нужен Xcode и его компонент "Command Line Tools", поскольку это включает необходимый компилятор gcc. Xcode свободен и доступен в AppStore. После установки XCode, откройте его и перейдите в to Preferences, Downloads, Components, затем установите компонент "Command Line Tools".

Загрузите исходные тексты psqlODBC с http://www.postgresql.org/ftp/odbc/versions/src/. Используйте последнюю версию доступную для скачивания. Распакуйте архив во временную папку, откройте терминал и перейдите в эту папку. Процесс установки:

shell> cd the/src/directory
shell> ./configure --with-iodbc --enable-pthreads
shell> CFLAGS="-arch i386 -arch x86_64" make
shell> sudo make install

10.6.3. Установка связи

После загрузки мастера Migration Wizard нажмите Start Migration на странице Overview, чтобы начать процесс миграции. Вы сначала соединитесь с исходной базой данных PostgreSQL. Здесь вы предоставите информацию о PostgreSQL RDBMS, драйвере ODBC, который будет использоваться для миграции, и все параметры, требуемые для связи. Имя драйвера ODBC это то, которое вы настраиваете, когда зарегистрировали драйвер psqlODBC в менеджере драйверов.

Откройте список Database System. Он покажет каждую RDBMS, которая поддерживается на вашей системе. Выберите PostgreSQL. Ниже этого списка есть дополнительный список Stored Connection. Сохраненные связи будут перечислены здесь, которые являются связями, сохраненными после определения связи с Store connection for future use as.

Три варианта Connection Method:

  • ODBC (manually entered parameters): Каждый параметр, например, имя пользователя, определяется отдельно.
  • ODBC Data Source: Для предварительно сконфигурированных источников данных (DSN) можно произвольно создать DSN с использованием ODBC Administrator.
  • ODBC (direct connection string): Полная строка подключения ODBC.

Драйвер psqlODBC не позволяет связь, не определяя имя базы данных.

Процесс миграции подобен другим базам данных. Посмотрите раздел 10.6.4 для получения информации о том, как мастер миграции мигрирует типы от PostgreSQL в MySQL и раздел 10.2.1 для общего руководства по миграции.

10.6.4. Отображение типов данных PostgreSQL

Следующая таблица показывает отображение между типами данных PostgreSQL (источник) и MySQL.

Таблица 10.3. Отображение типов

Исходный тип Тип MySQL Комментарий
INT INT
SMALLINT SMALLINT
BIGINT BIGINT
SERIAL INT Установит AUTO_INCREMENT в определении таблицы.
SMALLSERIAL SMALLINT Установит AUTO_INCREMENT в определении таблицы.
BIGSERIAL BIGINT Установит AUTO_INCREMENT в определении таблицы.
BIT BIT
BOOLEAN TINYINT(1)
REAL FLOAT
DOUBLE PRECISION DOUBLE
NUMERIC DECIMAL
DECIMAL DECIMAL
MONEY DECIMAL(19,2)
CHAR CHAR/LONGTEXT В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы CHAR с длиной до 255 знаков. Что-либо большее мигрируется как LONGTEXT.
NATIONAL CHARACTER CHAR/LONGTEXT В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR с длиной до 65535 знаков. Что-либо большее мигрируется к одному из типов TEXT. В MySQL набор символов строки зависит от набора символов столбца вместо типа данных.
VARCHAR VARCHAR/MEDIUMTEXT/LONGTEXT В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR знаков. Что-либо большее мигрируется к одному из типов TEXT.
NATIONAL CHARACTER VARYING VARCHAR/MEDIUMTEXT/LONGTEXT В зависимости от его длины. У MySQL Server 5.6 и выше могут быть столбцы VARCHAR знаков. Что-либо большее мигрируется к одному из типов TEXT. В MySQL набор символов строки зависит от набора символов столбца вместо типа данных.
DATE DATE
TIME TIME
TIMESTAMP DATETIME
INTERVAL TIME
BYTEA LONGBLOB
TEXT LONGTEXT
CIDR VARCHAR(43)
INET VARCHAR(43)
MACADDR VARCHAR(17)
UUID VARCHAR(36)
XML LONGTEXT
JSON LONGTEXT
TSVECTOR LONGTEXT
TSQUERY LONGTEXT
ARRAY LONGTEXT
POINT POINT
LINE LINESTRING Хотя длина LINE бесконечна, а LINESTRING конечен в MySQL, это приближено.
LSEG LINESTRING A LSEG похож на LINESTRING только с двумя точками.
BOX POLYGON A BOX это POLYGON с пятью точками и прямыми углами.
PATH LINESTRING
POLYGON POLYGON
CIRCLE POLYGON A POLYGON используется, чтобы представить CIRCLE.
TXID_SNAPSHOT VARCHAR

10.7. Миграция MySQL

Выполните модернизацию версии сервера MySQL, чтобы перейти на последнюю версию. Типичный мастер миграции может мигрировать MySQL к MySQL, и более простой мастер Schema Transfer Wizard может также использоваться.

MySQL Schema Transfer Wizard

Мастер MySQL Schema Transfer помогает вам переместить свои данные от более старой версии сервера MySQL в иную (как правило, более позднюю) версию MySQL. Этот инструмент миграции предназначается для разработчиков, поскольку это более просто, чем типичный мастер миграции, потому что это мигрирует только MySQL к MySQL. Данные передаются не на основе последовательного снимка, таким образом, они работают лучше всего на локальных серверах MySQL. Вы не должны использовать этого мастера на производственных серверах MySQL.

Чтобы открыть мастера, выберите Database, Schema Transfer Wizard из главного меню.

Рис. 10.45. MySQL Schema Transfer Wizard: Обзор

Content is described in the surrounding text.

Прочитайте текст обзора и нажмите Start the Wizard.

Рис. 10.46. MySQL Schema Transfer Wizard: выбор связи

Content is described in the surrounding text.

Выберите свои целевое и исходное подключения MySQL. После выбора и тестирования ваших подключений MySQL нажмите Next.

Рис. 10.47. MySQL Schema Transfer Wizard: выбор схемы

Content is described in the surrounding text.

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

Рис. 10.48. MySQL Schema Transfer Wizard: копирование базы данных

Content is described in the surrounding text.

Просмотрите Message Log, чтобы подтвердить, что миграция, закончена с успехом. Нажмите Next , чтобы смотреть резюме результатов.

Рис. 10.49. MySQL Schema Transfer Wizard: Результаты

Content is described in the surrounding text.

Нажмите Finish, чтобы закрыть мастер.

10.8. Использование мастера MySQL Workbench Migration

Для визуальной пошаговой демонстрации мастера миграции посмотрите раздел 10.2.1.

10.8.1. Соединение с базами данных

Связь установлена с входными и выходными серверами баз данных.

Исходная связь

Выберите источник, который мигрирует к MySQL. Выберите Database System, которая мигрирует, и другие параметры связи изменятся соответственно.

Это определение связи может быть сохранено, используя Store connection for future use as, есть также опция Test Connection.

Рис. 10.50. MySQL Workbench: Выбор источника (параметры)

Content is described in the surrounding text.

Целевой выбор

Цель это база данных MySQL, которая будет содержать мигрировавшие данные. Выберите существующую связь MySQL Workbench или Manage Stored Connections из выпадающего списка, чтобы создать новое подключение MySQL.

Рис. 10.51. MySQL Workbench: Выбор цели

Content is described in the surrounding text.

10.8.2. Поиск схемы и выбор

Получите список доступных баз данных и выберите определенные базы данных (и таблицы), которые вы хотите мигрировать к MySQL.

Список схем

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

Шаги, которые выполняются, включают: соединение с источником, проверку связи и получение списка схем из источника.

Рис. 10.52. MySQL Workbench: получение списка схем

Content is described in the surrounding text.

Выбор схем

Выберите базы данных, которые вы хотите мигрировать к MySQL.

Шаг Schema Name Mapping Method предоставляет следующие возможности для перехода с Microsoft SQL Server:

Этот пример использует Microsoft SQL Server в качестве источника RDMS. Хотя варианты будут отличаться для других систем баз данных, логика остается той же самой.

  • Keep schemas as they are: Catalog.Schema.Table -> Schema.Table: Это создаст много баз данных, одну на схему.
  • Only one schema: Catalog.Schema.Table -> Catalog.Table: Сливает каждую схему в единую базу данных.
  • Only one schema, keep current schema names as a prefix: Catalog.Schema.Table -> Catalog.Schema_table: Сохраняет название схемы как префикс.

Рис. 10.53. MySQL Workbench Migration: выбор схем

Content is described in the surrounding text.

10.8.3. Инженерный анализ

Исходные метаданные получены из источника RDBMS и перепроектированы. Это автоматизированный информационный шаг, который сообщает об ошибках и общей информации. Просмотрите записи и затем нажмите Next.

Рис. 10.54. MySQL Workbench: анализ источника

Content is described in the surrounding text.

10.8.4. Выбор объектов

Объекты, обнаруженные стадией Reverse Engineer Source, сделаны доступными здесь. Доступные объекты включают таблицы, представления и хранимые подпрограммы, но только объекты таблицы выбраны по умолчанию. Используйте Show Selection, чтобы отключить отдельные объекты таблицы.

Рис. 10.55. MySQL Workbench: Исходные объекты

Content is described in the surrounding text.

10.8.5. Миграция

Перепроектированные объекты из источника RDBMS автоматически преобразовываются в MySQL-совместимые объекты. Тип данных по умолчанию и отображения значения столбца по умолчанию используются, произведенные объекты и определения столбца могут быть просмотрены и отредактированы на следующем шаге.

Выполненные шаги включают перемещение выбранных объектов и создание запросов SQL CREATE.

Рис. 10.56. MySQL Workbench Migration: миграция

Content is described in the surrounding text.

10.8.6. Ручное редактирование

Используйте блок View, чтобы выбрать секцию, чтобы отредактировать. Кнопка Show Code and Messages доступна на каждой странице, и это показывает произведенный код MySQL, который соответствует выбранному объекту.

  • Migration Problems: Это сообщает о проблемах или покажет "No mapping problems found.".

    Рис. 10.57. MySQL Workbench: Редактирование вручную

    Content is described in the surrounding text.
  • All Objects: представление объекта, которое позволяет вам рассматривать и редактировать определения объектов. Дважды щелкните по строке, чтобы изменить имена целевых объектов.

    Рис. 10.58. MySQL Workbench: редактирование вручную (все объекты)

    Content is described in the surrounding text.
  • Column Mappings: покажет все отображения столбца таблицы и позволяет вам индивидуально просмотреть и исправить отображение для всех типов столбца, значений по умолчанию и других признаков.

    Рис. 10.59. MySQL Workbench Migration: редактирование вручную (отображения столбцов)

    Content is described in the surrounding text.

10.8.7. Целевые варианты создания

Определяет дополнительные параметры настройки для целевой схемы. Параметры конфигурации включают:

  • Create schema in target RDBMS
  • Create an SQL script file
  • Keep the schemas if they already exist. Objects that already exist will not be recreated or update.

Рис. 10.60. MySQL Workbench Migration: целевые варианты создания

Content is described in the surrounding text.

10.8.8. Создание схемы

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

Рис. 10.61. MySQL Workbench Migration: создание схем

Content is described in the surrounding text.

10.8.9. Создайте целевые результаты

Произведенные объекты перечисляются здесь, наряду с сообщениями об ошибках.

Код миграции также может быть рассмотрен и отредактирован здесь. Чтобы внести изменения, выберите объект, отредактируйте код запроса и нажмите Apply. Повторите этот процесс для каждого объекта, который будет отредактирован. Наконец, нажмите Recreate Objects, чтобы сохранить результаты.

Recreate Objects требуется, чтобы сохранить любые изменения здесь. Это выполнит предыдущий шаг миграции (Create Schemas) с измененным кодом, затем продолжит процесс миграции. Это также означает, что ранее сохраненная схема будет удалена.

Рис. 10.62. MySQL Workbench Migration: создайте целевые результаты

Content is described in the surrounding text.

10.8.10 Передача данных и установка миграции

Данные передаются из источника RDBMS к целевой базе данных MySQL. Экран установки включает следующие варианты:

Data Copy:

  • Online copy of table data to target RDBMS : Это (по умолчанию) скопирует данные к целевой RDBMS.
  • Create a batch file to copy the data at another time: данные также могут быть записаны в файлу, который может выполняться в более позднее время или использоваться в качестве резервной копии. Этот скрипт использует подключение MySQL, чтобы передать данные.
  • Create a shell script to use native server dump and load abilities for fast migration: В отличие от простого пакетного файла, который выполняет живую копию онлайн, это производит скрипт, который будет выполнен на источнике, чтобы произвести zip-файл, содержащий все данные. Скопируйте и распакуйте произведенный zip-файл на целевом хосте и затем выполните скрипт импорта (на целевом хосте), чтобы импортировать данные в MySQL, используя LOAD DATA.

    Этот более быстрый метод избегает передачи данных через MySQL Workbench ине требует иметь постоянное сетевое соединение между серверами MySQL. Этот выбор был добавлен в MySQL Workbench 6.3.0.

Допустимые здесь опции:

  • Truncate target tables before copying data: В случае, если целевая база данных уже существует, это удалит данные.
  • Worker tasks: The default value is 2. Это количество задач (соединений с базой данных), используемых, копируя данные.
  • Enable debug output for table copy: Показать данные отладки.

Рис. 10.63. MySQL Workbench Migration: Data Transfer Setup

Content is described in the surrounding text.

10.8.11. Оптовая передача данных

В зависимости от выбранного варианта это передаст данные целевой RDMS (по умолчанию), произведет простой скрипт для передачи данных онлайн или произведет скрипт, чтобы выполнить на исходном хосте, который производит zip-файл, содержащий скрипт передачи и данные, который будет выполнен на целевом хосте. Произвольно, смотрите журнал, чтобы подтвердить.

Рис. 10.64. MySQL Workbench Migration: оптовая передача данных

Content is described in the surrounding text.

10.8.12. Отчет о миграции

Показывает итоговый отчет, который суммирует процесс миграции. Следующие данные показывают пример отчета о миграции.

Рис. 10.65. MySQL Workbench Migration: Отчет о миграции

Content is described in the surrounding text.

10.9. MySQL Workbench Migration Wizard FAQ

Часто задаваемые вопросы с ответами.

10.9.1. Используя драйвер Postgresql psqlodbc, я получаю ошибку: ('08001', '[08001] Already connected. (202) (SQLDriverConnect)').

10.9.1.

Используя драйвер Postgresql psqlodbc, я получаю ошибку: ('08001', '[08001] Already connected. (202) (SQLDriverConnect)').

Это означает, что PostgreSQL не настроен, чтобы принять связи от IP источника.

Поиск

 

Найди своих коллег!

Вы можете направить письмо администратору этой странички, Алексею Паутову. mailto:alexey.v.pautov@mail.ru