Миграция локальной базы данных MySQL в Azure

Завершено

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

Вы ознакомились с возможностями службы базы данных Azure для MySQL по поддержке и масштабированию MySQL в Azure, и теперь вам нужно подумать о переносе существующих локальных баз данных.

В этом уроке вы узнаете, как создать экземпляр службы базы данных Azure для MySQL с помощью портала Azure. Если необходимо создать несколько экземпляров этой службы, можно воспользоваться интерфейсом командной строки Azure и написать соответствующий скрипт для этого процесса.

Создание службы базы данных Azure для MySQL с помощью портала

На портале Azure выберите команду Базы данных в разделе Azure Marketplace и выберите вариант База данных Azure для MySQL.

Изображение: пункт

Введите необходимые данные для службы. Например:

  • Имя сервера. Это должно быть уникальное имя длиной от 3 до 63 символов, содержащее только строчные буквы, цифры и дефисы.
  • Источник данных. Если создается новый сервер, предназначенный для миграции, выберите Нет. Параметр Резервное копирование позволяет восстановить резервную копию, созданную на другом экземпляре службы базы данных Azure для MySQL, в эту службу.
  • Имя администратора. Это имя учетной записи пользователя, которая будет создана с правами администратора. Azure создает некоторые учетные записи для собственного использования, а другие имена запрещены. Нельзя использовать имена azure_superuser, admin, administrator, root, guest или public.
  • Пароль. Должен быть длиной от 8 до 128 символов. Пароль должен состоять из прописных и строчных букв, цифр и символов, отличных от алфавитно-цифровых. База данных Azure для MySQL в настоящее время поддерживает только проверку подлинности паролей. Интеграция с идентификатором Microsoft Entra пока недоступна.
  • Версия. Выберите версию, соответствующую переносимой локальной базе данных.
  • Вычисления и хранение. Щелкните Настроить сервер, чтобы задать ценовую категорию и указать ресурсы, необходимые для службы. Параметры были описаны на занятии 1. Не забывайте, что при выборе ценовых категорий Общего назначения или Оптимизированная для памяти можно в последствии увеличивать и уменьшать число ядер виртуальных процессоров. Однако нельзя уменьшать объем хранилища, его можно только увеличивать после создания сервера.

Снимок экрана: пример конфигурации для База данных Azure для MySQL в портал Azure.

Щелкните Проверить и создать, чтобы развернуть службу. Развертывание может занять несколько минут.

После развертывания службы выберите параметр Безопасность подключения и добавьте соответствующие правила брандмауэра, чтобы разрешить подключение клиентов, как описано в разделе Подключение клиентов Занятия 1. Также необходимо выбрать параметр Разрешить доступ к службам Azure.

Создание экземпляра службы базы данных Azure для MySQL с помощью интерфейса командной строки Azure

Экземпляр службы базы данных Azure для MySQL можно создать с помощью команды az mysql server create. Ниже показан пример инструкции для создания экземпляра MySQL. Большинство параметров не требуют пояснений, за исключением следующих.

  • sku-name. Создается на основе сочетания следующих характеристик: ценовая категория (B — "Стандартная", GP — "Общего назначения" и MO — "Оптимизированная для операций в памяти"), поколение вычислительных ресурсов (4-е или 5-е поколения) и количество виртуальных ядер ЦП. В приведенном ниже примере сервер создается с использованием ценовой категории "Общего назначения" с четырьмя ядрами ЦП 5-го поколения.
  • storage-size. Это необходимый объем дискового пространства, указанный в мегабайтах. В приведенном ниже примере выделяется 10 гигабайт.
az mysql server create \
  --name contoso-MySQL-server \
  --resource-group MySQLrg \
  --admin-user contosoadmin \
  --admin-password 7Hh7*ku5k$$£jhk \
  --sku-name GP_Gen5_4 \
  --storage-size 10240

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

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

Если вы хотите выполнить автономную миграцию в службу базы данных Azure для MySQL, у вас есть по крайней мере два варианта:

экспорт и импорт;

Вы можете экспортировать базу данных из MySQL и импортировать ее в службу базы данных Azure для MySQL с помощью таких средств, как MySQL Workbench. Это целесообразно в нескольких сценариях:

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

Экспорт и импорт можно выполнять с помощью MySQL Workbench. В меню Сервер выберите Экспорт данных или Импорт данных.

Примечание.

Можно также использовать mysqldump для экспорта конкретных таблиц, указывая их имена после имени базы данных.

Дополнительную информацию можно получить в разделе Перенос базы данных MySQL с помощью импорта и экспорта.

Резервное копирование и восстановление

Операции резервного копирования и восстановления следует использовать, если нужно эффективно переместить всю базу данных.

При использовании резервного копирования и восстановления следует учитывать ряд факторов:

  • Необходимо исключить срабатывание триггеров во время восстановления с помощью параметра exclude-triggers.
  • Резервную копию всей базы данных нужно создавать одной транзакцией с помощью параметра single-transaction.
  • Необходимо отключить срабатывающие во время процесса ограничения внешних ключей, использовав параметр disable-keys.
  • Нужно отложить создание индекса до завершения операции восстановления с помощью параметра defer-table-indexes.

С дополнительной информацией о программе mysqldump можно ознакомиться в разделе mysqldump — программа резервного копирования базы данных.

Примечание.

Программу mysqldump можно также использовать для экспорта конкретных таблиц, указывая их имена после имени базы данных.

Azure Database Migration Service (DMS)

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

Миграция с использованием резервного копирования и восстановления

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

  1. Экспортируйте данные в другой файл с помощью команды mysqldump:

    mysqldump -h [host name] -u [username] -p[password] [database name] > db_data.sql
    

    В данном случае db_data.sql — это скрипт SQL, который можно изменять с помощью текстового редактора.

  2. Создайте целевую базу данных в службе базе данных Azure для MySQL. Это можно сделать с помощью интерфейса командной строки Azure:

    az mysql db create \
        --name [database name] \
        --server-name [server name] \
        --resource-group [azure resource group]
    
  3. Импортируйте данные в целевую базу данных с помощью команды mysql:

    mysql -h [host name] -u [username] -p[password] [database name] < db_data.sql
    

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

DMS также поддерживает миграцию через Интернет в База данных Azure для MySQL. Для миграции через Интернет рекомендуется выбрать вычислительные ресурсы общего назначения 16 виртуальных ядер для целевого гибкого сервера для ускорения миграции. Выполните горизонтальное масштабирование до требуемого размера вычислительных ресурсов целевого сервера после завершения миграции на основе подробных сведений в следующей таблице.

Отдельный сервер: ценовая Отдельный сервер: виртуальные ядра Гибкий сервер: объем вычислительных ресурсов Гибкий сервер: уровень вычислительных ресурсов
Основное 1 С увеличивающейся производительностью Standard_B1s
Основное 2 С увеличивающейся производительностью Standard_B2s
Общего назначения 4 Общего назначения Standard_D4ds_v4
Общего назначения 8 Общего назначения Standard_D8ds_v4

Дополнительные сведения о миграции по сети в База данных Azure для MySQL см. в руководстве по миграции База данных Azure для MySQL на гибкий сервер в режиме "Гибкий сервер" с помощью DMS с помощью портал Azure.