Учебник. Перенос 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 и выше) в более поздние.

Примечание.

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

Примечание.

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

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

  • Создайте экземпляр DMS.
  • Создайте проект миграции MySQL в DMS.
  • Перенос схемы MySQL с помощью DMS.
  • выполнение миграции.
  • Мониторинг миграции.

Необходимые компоненты

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

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

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

  • Создайте виртуальную сеть 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 увеличиваются с увеличением уровня хранилища.

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

    Отдельный сервер: ценовая Отдельный сервер: виртуальные ядра Гибкий сервер: объем вычислительных ресурсов Гибкий сервер: уровень вычислительных ресурсов
    Базовый* 1 Общего назначения Standard_D16ds_v4
    Базовый* 2 Общего назначения Standard_D16ds_v4
    Общего назначения* 4 Общего назначения Standard_D16ds_v4
    Общего назначения* 8 Общего назначения Standard_D16ds_v4
    Общее назначение 16 Общего назначения Standard_D16ds_v4
    Общее назначение 32 Общего назначения Standard_D32ds_v4
    Общее назначение 64 Общего назначения Standard_D64ds_v4
    С оптимизацией для операций в памяти 4 Критически важный для бизнеса Standard_E4ds_v4
    С оптимизацией для операций в памяти 8 Критически важный для бизнеса Standard_E8ds_v4
    С оптимизацией для операций в памяти 16 Критически важный для бизнеса Standard_E16ds_v4
    С оптимизацией для операций в памяти 32 Критически важный для бизнеса Standard_E32ds_v4

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

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

Настройка DMS

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

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

Чтобы зарегистрировать поставщика ресурсов Microsoft.DataMigration, выполните следующие действия.

  1. Перед созданием первого экземпляра DMS войдите в портал Azure, а затем найдите и выберите подписки. Screenshot of a Select subscriptions from Azure Marketplace.

  2. Выберите подписку, которую вы хотите использовать для создания экземпляра DMS, а затем выберите поставщиков ресурсов. Screenshot of a Select Resource Provider.

  3. Найдите термин "Миграция", а затем для Microsoft.DataMigration выберите "Зарегистрировать". Screenshot of a Register your resource provider.

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

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

    Azure Marketplace

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

    Create Azure Database Migration Service instance

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

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

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

    Configure Azure Database Migration Service basic settings

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

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

    Configure Azure Database Migration Service network settings

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

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

    Azure Database Migration Service create

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

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

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

    Locate all instances of Azure Database Migration Service

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

    Create a new migration project

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

    Create Database Migration Service Project

    Примечание.

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

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

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

    Add source details screen

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

    Add target details screen

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

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

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

    Select tables screen

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

    Migration project summary

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

    Running migration

Отслеживайте ход миграции.

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

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

    Monitoring migration

Выполнение переноса

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

    Complete migration

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

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

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

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

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

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

    Locate all instances of DMS

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

    Delete the migration service

  3. В диалоговом окне подтверждения введите имя службы в текстовом поле TYPE THE DATABASE MIGRATION SERVICE NAME и нажмите кнопку "Удалить".

    Confirm migration service delete

Следующие шаги