Учебник. Перенос MySQL в Базу данных Azure для MySQL в автономном режиме с помощью DMS

Вы можете использовать Azure Database Migration Service для выполнения однократной полной миграции локального экземпляра базы данных MySQL в Базу данных Azure для MySQL с высокой скоростью переноса данных. В этом учебнике описано, как выполнить миграцию примера базы данных из локального экземпляра MySQL 5.7 в Базу данных Azure для MySQL (версии 5.7) с помощью автономной миграции в Azure Database Migration Service. Хотя в статьях предполагается, что источником является экземпляр базы данных MySQL, а целевым объектом — База данных Azure для MySQL, эти инструкции можно использовать для миграции из одной Базы данных Azure для MySQL в другую, просто изменив имя исходного сервера и учетные данные. Кроме того, поддерживается миграция с серверов MySQL более ранних версий (версия 5.6 и выше) в более поздние.

Важно!

Для интерактивной миграции также можно использовать средства с открытым кодом, например MyDumper/MyLoader с репликацией входных данных.

Примечание

Версию процесса миграции на основе скриптов PowerShell см. в статье Автономная миграция в Базу данных Azure для MySQL с поддержкой скриптов.

Примечание

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

В этом руководстве описано следующее:

  • Перенос схемы базы данных с помощью служебной программы mysqldump.
  • Создайте экземпляр Azure Database Migration Service.
  • создание проекта миграции с использованием Azure Database Migration Service.
  • выполнение миграции.
  • Мониторинг миграции.

Предварительные требования

Для работы с этим руководством вам потребуется следующее:

  • Подготовьте учетную запись Azure с активной подпиской. Создайте учетную запись бесплатно.

  • У вас должна быть локальная база данных MySQL с версией 5.7. Если ее нет, скачайте и установите MySQL Community Edition версии 5.7.

  • Миграция MySQL в автономном режиме поддерживается только в SKU DMS уровня "Премиум".

  • Создайте экземпляр в Базе данных Azure для MySQL. Ознакомьтесь со статьей Подключение и запрос данных с помощью MySQL Workbench, чтобы узнать, как подключить и создать базу данных с помощью приложения Workbench. Версия Базы данных Azure для MySQL должна быть не ниже, чем версия локальной базы данных MySQL. Например, MySQL версии 5.7 можно перенести в Базу данных Azure для MySQL версии 5.7 или 8.

  • Создайте виртуальную сеть Microsoft Azure для Azure Database Migration Service с помощью модели развертывания Azure Resource Manager, которая обеспечивает подключение "сеть — сеть" к локальным исходным серверам с помощью ExpressRoute или VPN. Дополнительные сведения о создании виртуальной сети приведены в документации по виртуальным сетям. В частности, уделите внимание кратким руководствам с пошаговыми инструкциями.

    Примечание

    Если вы используете ExpressRoute с пиринговым подключением к сети, управляемой Майкрософт, во время настройки виртуальной сети добавьте в подсеть, в которой будет подготовлена служба, следующие конечные точки:

    • Конечная точка целевой базы данных (например, конечная точка SQL, конечная точка Azure Cosmos DB и т. д.)
    • конечную точку службы хранилища;
    • конечную точку служебной шины.

    Такая конфигурация вызвана тем, что у Azure Database Migration Service нет подключения к Интернету.

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

  • Откройте брандмауэр Windows, чтобы разрешить подключения из виртуальной сети для Azure Database Migration Service для доступа к исходному серверу MySQL Server. По умолчанию это TCP-порт 3306.

  • Если перед исходными базами данных развернуто устройство брандмауэра, может понадобиться добавить правила брандмауэра, чтобы разрешить подключения из виртуальной сети для службы Azure Database Migration Service для доступа к исходным базам данных для выполнения миграции.

  • Создайте правило брандмауэра уровня сервера или настройте конечные точки службы виртуальной сети для целевой Базы данных Azure для MySQL, чтобы предоставить виртуальной сети службы Azure Database Migration Service доступ к целевым базам данных.

  • Исходный экземпляр MySQL должен находиться в поддерживаемой версии MySQL Community Edition. Чтобы определить версию экземпляра MySQL, в служебной программе MySQL или MySQL Workbench выполните следующую команду:

    SELECT @@version;
    
  • База данных Azure для MySQL поддерживает только таблицы InnoDB. Чтобы преобразовать таблицы MyISAM в InnoDB, ознакомьтесь со сведениями на странице о преобразовании таблиц.

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

Изменение размера целевого экземпляра БД Azure для MySQL

Чтобы подготовить целевой сервер БД Azure для MySQL для ускорения загрузки данных с помощью Azure Database Migration Service, рекомендуется использовать приведенные ниже параметры сервера и изменить конфигурацию следующим образом.

  • max_allowed_packet — задайте значение 1073741824 (т. е. 1 ГБ), чтобы предотвратить проблемы с подключением из-за длинных строк.
  • slow_query_log — установите значение OFF, чтобы отключить журнал запросов с задержкой. Это позволит избежать накладных расходов, вызванных ведением журнала запросов с задержкой при загрузке данных.
  • query_store_capture_mode — задайте значение NONE, чтобы отключить хранилище запросов. Это позволит устранить издержки, вызванные операциями выборки в хранилище запросов.
  • innodb_buffer_pool_size — Innodb_buffer_pool_size можно увеличить только путем увеличения масштаба вычислений для сервера базы данных Azure для MySQL. В разделе "Ценовая категория общего назначения" на портале увеличьте категорию сервера до 64 виртуальных ядер общего назначения на время миграции, чтобы увеличить значение innodb_buffer_pool_size.
  • innodb_io_capacity и innodb_io_capacity_max — измените значение на 9000 в параметрах сервера на портале Azure, чтобы улучшить использование операций ввода-вывода для оптимизации скорости миграции.
  • innodb_write_io_threads и innodb_write_io_threads — измените значение на 4 в параметрах сервера на портале Azure, чтобы повысить скорость миграции.
  • Масштабирование уровня хранилища — число операций ввода-вывода в секунду для сервера базы данных Azure для MySQL увеличиваются с увеличением уровня хранилища.
    • В режиме развертывания с одним сервером для ускорения загрузки рекомендуется повысить уровень хранилища, чтобы увеличить число выделяемых операций ввода-вывода в секунду.
    • В варианте развертывания "Гибкий сервер" рекомендуется масштабировать (увеличивать или уменьшать) операции ввода-вывода в секунду независимо от размера хранилища.
    • Помните, что объем хранилища можно только увеличивать, но не уменьшать.

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

Миграция схемы базы данных

Чтобы перенести все объекты базы данных, такие как схемы таблицы, индексы и хранимые процедуры, нам нужно извлечь схему из базы данных — источника и применить ее к целевой базе данных. Чтобы извлечь схему, можно использовать mysqldump с параметром --no-data. Для этого вам потребуется компьютер, который может подключаться как к исходной базе данных MySQL, так и к целевой Базе данных Azure для MySQL.

Чтобы экспортировать схему с помощью mysqldump, выполните следующую команду:

mysqldump -h [servername] -u [username] -p[password] --databases [db name] --no-data > [schema file path]

Пример:

mysqldump -h 10.10.123.123 -u root -p --databases migtestdb --no-data > d:\migtestdb.sql

Чтобы импортировать схему в целевую Базу данных Azure для MySQL, выполните следующую команду:

mysql.exe -h [servername] -u [username] -p[password] [database]< [schema file path]

Пример:

mysql.exe -h mysqlsstrgt.mysql.database.azure.com -u docadmin@mysqlsstrgt -p migtestdb < d:\migtestdb.sql

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

Регистрация поставщика ресурсов

Прежде чем создать свой первый экземпляр Database Migration Service, зарегистрируйте поставщик ресурсов Microsoft.DataMigration.

  1. Войдите на портал Azure. Выполните поиск по запросу Подписки и выберите этот пункт.

    Отображение подписок на портале

  2. Выберите подписку, в которой нужно создать экземпляр Azure Database Migration Service, а затем щелкните Поставщики ресурсов.

    Отображение поставщиков ресурсов

  3. В поле поиска введите migration, а затем щелкните элемент Зарегистрировать рядом с Microsoft.DataMigration.

    Регистрация поставщика ресурсов

Создание экземпляра Database Migration Service

  1. На портале Azure выберите +Создать ресурс, введите в поле поиска "Azure Database Migration Service", а затем в раскрывающемся списке выберите Azure Database Migration Service.

    Azure Marketplace

  2. На экране Azure Database Migration Service выберите Создать.

    Создание экземпляра Azure Database Migration Service

  3. На экране Создание службы миграции укажите имя службы, подписку и новую или существующую группу ресурсов.

  4. Выберите ценовую категорию и перейдите на экран сетей. Возможность автономной миграции доступна только в ценовой категории "Премиум".

    Дополнительные сведения о ценовых категориях и затратах см. на странице с описанием цен.

    Настройка базовых параметров Azure Database Migration Service

  5. Выберите существующую виртуальную сеть из списка или укажите имя создаваемой виртуальной сети. Перейдите на экран "Проверка и создание". При необходимости можно добавить теги в службу с помощью экрана тегов.

    Виртуальная сеть предоставляет Azure Database Migration Service доступ к исходному экземпляру SQL Server и целевому экземпляру Базы данных SQL Azure.

    Настройка параметров сети Azure Database Migration Service

    См. статью Краткое руководство. Создание виртуальной сети с помощью портала Azure.

  6. Проверьте конфигурации и нажмите Создать, чтобы создать службу.

    Создание Azure Database Migration Service

Создание проекта миграции

После создания службы найдите ее на портале Azure, откройте и создайте проект миграции.

  1. На портале Azure щелкните Все службы, выполните поиск по запросу "Azure Database Migration Service" и выберите Azure Database Migration Services (Службы Azure Database Migration Service).

    Поиск всех экземпляров Azure Database Migration Service

  2. Выберите экземпляр службы миграции в результатах поиска и щелкните Создать проект миграции.

    Создание проекта миграции

  3. На экране Создать проект миграции укажите имя проекта, в поле Тип исходного сервера выберите MySQL, в поле Тип целевого сервера выберите База данных Azure для MySQL, а в поле Тип действия миграции выберите Перенос данных. Нажмите кнопку Создать и запустить действие.

    Создание проекта Database Migration Service

    Примечание

    Кроме того, вы можете выбрать Создать только проект, чтобы создать проект миграции для отложенного выполнения.

Настройка проекта миграции

  1. На экране Выбор источника укажите сведения о подключении для исходного экземпляра MySQL и выберите Далее: выбор целевого объекта>>.

    Экран добавления сведений об источнике

  2. На экране Выбор целевого объекта укажите сведения о подключении для экземпляра целевого База данных Azure для MySQL и выберите Далее: выбор баз данных>>.

    Экран добавления сведений о целевом объекте

  3. На экране Выбор баз данных сопоставьте исходную и целевую базы данных для миграции и выберите Далее: настройка параметров миграции>>. Вы можете выбрать вариант Сделать исходный сервер доступным только для чтения, но учтите, что это параметр влияет на весь сервер. Если этот флажок установлен, только для чтения будет доступен весь сервер, а не выбранные базы данных.

    Если в целевой базе данных содержится база данных с тем же именем, что у исходной базы данных, Azure Database Migration Service по умолчанию выберет целевую базу данных. Экран

    Примечание

    Хотя на этом шаге можно выбрать несколько баз данных, существуют ограничения на количество и скорость переноса баз данных, так как каждая база данных будет совместно использовать вычисления. В конфигурации по умолчанию SKU "Премиум" каждая задача миграции попытается выполнить миграцию двух таблиц параллельно. Эти таблицы могут быть из любой из выбранных баз данных. Если это недостаточно быстро, можно разделить действия по переносу баз данных на различные задачи миграции и масштабировать их по нескольким службам. Кроме того, в каждой подписке действует ограничение в 10 экземпляров Azure Database Migration Service на регион. Более детальный контроль над пропускной способностью и параллелизмом миграции описан в статье PowerShell: запуск автономной миграции из базы данных MySQL в Базу данных Azure для MySQL с помощью DMS

  4. На экране Настройка параметров миграции выберите таблицы, которые будут частью миграции, и выберите Далее: сводка>>. Если целевые таблицы содержат данные, они не выбираются по умолчанию, но их можно явно выбрать, после чего они будут обрезаны перед началом миграции.

    Экран выбора таблиц

  5. На экране Сводка в поле Имя действия введите имя действия миграции, а затем проверьте соответствие сведениям о целевом и исходном сервере, которые вы указали ранее.

    Сводка по проекту миграции

  6. Выберите Начать миграцию. Появится окно действия миграции и в поле Состояние будет указано Инициализация. Состояние изменится на Выполняется, когда начнется перенос таблиц.

    Выполнение миграции

Мониторинг миграции

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

  2. Вы можете щелкнуть имя базы данных на экране действия, чтобы просматривать состояние каждой таблицы по мере их переноса. Щелкните Обновить, чтобы обновить отображение.

    Мониторинг миграции

Выполнение миграции

  1. На экране действия миграции нажмите кнопку Обновить, чтобы обновить содержимое экрана, пока состояние миграции не поменяется на Завершено.

    Завершение миграции

Действия после миграции

Прямая автономная миграция зависит от приложения, и мы не будем рассматривать ее здесь, но обсудим следующие действия, выполняемые после миграции:

  1. Создайте имена входа, роли и разрешения в соответствии с требованиями приложения.
  2. Повторно создайте все триггеры в целевой базе данных, извлеченные перед миграцией.
  3. Проверьте работоспособность приложения для целевой базы данных, чтобы подтвердить успешную миграцию.

Очистка ресурсов

Если вы не собираетесь дальше использовать Database Migration Service, можно удалить службу, выполнив следующие действия:

  1. На портале Azure щелкните Все службы, выполните поиск по запросу "Azure Database Migration Service" и выберите Azure Database Migration Services (Службы Azure Database Migration Service).

    Нахождение всех экземпляров DMS

  2. Выберите экземпляр службы миграции в результатах поиска и щелкните Удалить службу.

    Удаление службы миграции

  3. В диалоговом окне подтверждения введите имя службы в текстовое поле ВВЕДИТЕ ИМЯ СЛУЖБЫ МИГРАЦИИ БАЗ ДАННЫХ и выберите Удалить.

    Подтверждение удаления службы миграции

Дальнейшие действия