Перенос локальной рабочей нагрузки MySQL или виртуальной машины в База данных Azure для MySQL — гибкий сервер с помощью интерфейса командной строки База данных Azure для MySQL импорта (общедоступная предварительная версия)

База данных Azure для MySQL Импорт для внешних миграций (общедоступная предварительная версия) позволяет легко перенести локальную рабочую нагрузку MySQL или виртуальную машину на База данных Azure для MySQL — гибкий сервер. Он использует предоставленный пользователем файл физической резервной копии и восстанавливает файлы физических данных исходного сервера на целевом сервере, предлагая простой и быстрый путь миграции. После импорта вы можете воспользоваться преимуществами гибкого сервера, включая более высокую цену и производительность, детализированный контроль над конфигурацией базы данных и пользовательскими окнами обслуживания.

На основе входных данных пользователей она берет на себя ответственность за подготовку целевого гибкого сервера, а затем восстановление физической резервной копии исходного сервера, хранящегося в учетной записи хранения BLOB-объектов Azure, в целевом экземпляре гибкого сервера.

В этом руководстве показано, как использовать команду База данных Azure для MySQL Import CLI для переноса локальной рабочей нагрузки MySQL или виртуальной машины в База данных Azure для MySQL — гибкий сервер.

Запуск Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, выберите Попробовать в правом верхнем углу блока кода. Кроме того, Cloud Shell можно открыть в отдельной вкладке браузера. Для этого перейдите на страницу https://shell.azure.com/bash. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу ВВОД, чтобы выполнить его.

Если вы предпочитаете устанавливать и использовать интерфейс командной строки локально, для этого руководства требуется Azure CLI версии 2.54.0 или более поздней. Чтобы узнать версию, выполните команду az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.

Настройка

Необходимо войти в учетную запись с помощью команды az sign-in . Обратите внимание на свойство идентификатора, которое ссылается на идентификатор подписки учетной записи Azure.

az login

Выберите определенную подписку в учетной записи, в которой требуется развернуть целевой гибкий сервер с помощью команды az account set . Обратите внимание на значение идентификатора из выходных данных az login , которое будет использоваться в качестве значения аргумента подписки в команде. Чтобы отобразить все свои подписки, воспользуйтесь командой az account list.

az account set --subscription <subscription id>

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

  • Исходный сервер должен иметь следующие параметры:
    • Lower_case_table_names = 1
    • Innodb_file_per_table = ON
    • Имя системного пространства таблиц должно быть ibdata1.
    • Размер системного пространства таблиц должен быть больше или равен 12 МБ. (По умолчанию MySQL)
    • Innodb_page_size = 16348 (По умолчанию MySQL)
    • Поддерживается только подсистема INNODB.
  • Выполните физическую резервную копию рабочей нагрузки MySQL с помощью Percona XtraBackup Ниже приведены действия по использованию Percona XtraBackup для полного резервного копирования:
    • Установите Percona XtraBackup в локальной или виртуальной нагрузке. Для подсистемы MySQL версии 5.7 установите Percona XtraBackup версии 2.4, см. раздел "Установка Percona XtraBackup 2.4". Для подсистемы MySQL версии 8.0 установите Percona XtraBackup версии 8.0, см. раздел "Установка Percona XtraBackup 8.0".
    • Инструкции по выполнению полного резервного копирования с помощью Percona XtraBackup 2.4 см. в разделе "Полное резервное копирование". Инструкции по выполнению полного резервного копирования с помощью Percona XtraBackup 8.0 см. в статье [Полное резервное копирование] (https://docs.percona.com/percona-xtrabackup/8.0/create-full-backup.html).
    • Создайте контейнер BLOB-объектов Azure и получите маркер подписанного URL-адреса (SAS) (портал Azure или Azure CLI) для контейнера. Убедитесь, что вы предоставляете добавление, создание и запись в раскрывающемся списке разрешений . Скопируйте значения маркера SAS большого двоичного объекта и URL-адреса и вставьте их в безопасное место. Они отображаются только один раз и не могут быть извлечены после закрытия окна.
  • Отправьте полный файл резервного копирования в хранилище BLOB-объектов Azure. Выполните действия, описанные здесь.
  • Для выполнения миграции через Интернет записывание и хранение позиции файла резервного копирования, выполняемого с помощью Percona XtraBackup, выполните команду cat xtrabackup_info и скопируйте выходные данные bin_log pos.

Ограничения

  • Конфигурация исходного сервера не переносится. Необходимо правильно настроить целевой гибкий сервер.
  • Пользователи и привилегии не переносятся в рамках База данных Azure для MySQL импорта. Перед запуском База данных Azure для MySQL Import необходимо выполнить дампы вручную, чтобы перенести операции входа после импорта, восстанавливая их на целевом гибком сервере.
  • Гибкие серверы с поддержкой высокой доступности возвращаются как отключенные серверы высокой доступности для повышения скорости миграции после миграции. Включите высокий уровень доступности для целевого гибкого сервера после миграции.

Рекомендации для оптимальной миграции

  • Рекомендуется сохранить учетную запись хранения BLOB-объектов Azure и целевой гибкий сервер для развертывания в одном регионе для повышения производительности импорта.
  • Рекомендуемая конфигурация SKU для целевого База данных Azure для MySQL гибкий сервер —
    • Чтобы оптимизировать время миграции при выполнении операции импорта База данных Azure для MySQL, параметр SKU для целевого объекта не рекомендуется. Мы рекомендуем масштабировать до общего назначения или критически важный для бизнеса для выполнения операции импорта, после чего можно уменьшить масштаб до номера SKU с возможностью ускорения.

Активация операции импорта База данных Azure для MySQL для миграции с База данных Azure для MySQL -Гибкий сервер

Активируйте операцию импорта База данных Azure для MySQL с az mysql flexible-server import create помощью команды. Следующая команда создает целевой гибкий сервер и выполняет импорт на уровне экземпляра из файла резервной копии в целевое место назначения с помощью локального контекста Azure CLI:

az mysql flexible-server import create --data-source-type
                                --data-source
                                --data-source-sas-token
                                --resource-group
                                --name
                                --sku-name
                                --tier
                                --version
                                --location
                                [--data-source-backup-dir]
                                [--storage-size]
                                [--mode]
                                [--admin-password]
                                [--admin-user]
                                [--auto-scale-iops {Disabled, Enabled}]
                                [--backup-identity]
                                [--backup-key]
                                [--backup-retention]
                                [--database-name]
                                [--geo-redundant-backup {Disabled, Enabled}]
                                [--high-availability {Disabled, SameZone, ZoneRedundant}]
                                [--identity]
                                [--iops]
                                [--key]
                                [--private-dns-zone]
                                [--public-access]
                                [--resource-group]
                                [--standby-zone]
                                [--storage-auto-grow {Disabled, Enabled}]
                                [--subnet]
                                [--subnet-prefixes]
                                [--tags]
                                [--vnet]
                                [--zone]


The following example takes in the data source information for your source MySQL server’s backup file and target Flexible Server information, creates a target Flexible Server named `test-flexible-server` in the `westus` location and performs an import from backup file to target. 

azurecli-interactive
az mysql flexible-server import create --data-source-type "azure_blob" --data-source "https://onprembackup.blob.core.windows.net/onprembackup" --data-source-backup-dir "mysql_backup_percona" –-data-source-token "{sas-token}" --resource-group "test-rg"  --name "test-flexible-server" –-sku-name Standard_D2ds_v4  --tier GeneralPurpose –-version 5.7 -–location "westus”

Ниже приведены сведения о приведенных выше аргументах:

Параметр Пример значения Description
тип источника данных azure_blob Тип источника данных, который служит источником назначения для активации База данных Azure для MySQL импорта. Принятые значения: [azure_blob]. Описание принятых значений— azure_blob: хранилище BLOB-объектов Azure.
источник данных {resourceID} Идентификатор ресурса контейнера BLOB-объектов Azure.
data-source-backup-dir mysql_percona_backup Каталог контейнера хранилища BLOB-объектов Azure, в котором был отправлен файл резервной копии. Это значение необходимо только в том случае, если файл резервной копии не хранится в корневой папке контейнера BLOB-объектов Azure.
маркер data-source-sas-token {sas-token} Маркер подписанного URL-адреса (SAS), созданный для предоставления доступа к импорту из контейнера хранилища BLOB-объектов Azure.
resource-group test-rg Имя группы ресурсов Azure целевого База данных Azure для MySQL гибкого сервера.
mode Offline Режим импорта База данных Azure для MySQL. Принятые значения: [автономный]; Значение по умолчанию: автономное.
расположение westus Расположение Azure для исходного База данных Azure для MySQL гибкий сервер.
name test-flexible-server Введите уникальное имя целевого База данных Azure для MySQL гибкого сервера. Имя сервера может содержать только строчные буквы, цифры и знак дефиса (-). Его длина должна составлять от 3 до 63 символов. Примечание. Этот сервер развертывается в той же подписке, группе ресурсов и регионе, что и источник.
admin-user adminuser Имя пользователя для входа администратора для целевого База данных Azure для MySQL гибкий сервер. Не может иметь значение azure_superuser, admin, administrator, root, guest или public.
admin-password пароль Пароль администратора для целевого База данных Azure для MySQL гибкого сервера. Пароль должен содержать от 8 до 128 символов. Пароль должен содержать символы из трех категорий: английские прописные буквы, строчные буквы, цифры и нефазные цифры.
sku-name GP_Gen5_2 Введите имя ценовой категории и конфигурации вычислений для целевого База данных Azure для MySQL гибкого сервера. В сокращенной записи соответствует схеме {ценовая категория}{поколение вычислительных ресурсов}{число виртуальных ядер}. Дополнительные сведения см. на странице с ценовыми категориями.
tier С увеличивающейся производительностью Уровень вычислений целевого База данных Azure для MySQL гибкий сервер. Допустимые значения: Ускорение, GeneralPurpose, MemoryOptimized; Значение по умолчанию: с возможностью ускорения.
общедоступный доступ 0.0.0.0 Определяет общедоступный доступ для целевого База данных Azure для MySQL гибкого сервера. Введите один или диапазон IP-адресов, которые будут включены в список разрешенных IP-адресов. Диапазоны IP-адресов должны быть разделены дефисом и не содержать пробелов. Указание 0.0.0.0.0 разрешает общедоступный доступ из любых ресурсов, развернутых в Azure, для доступа к серверу. Если для него задано значение None, сервер в режиме общедоступного доступа не создается правило брандмауэра.
виртуальная сеть myVnet Имя или идентификатор новой или существующей виртуальной сети. Если вы хотите использовать виртуальную сеть из другой группы ресурсов или подписки, укажите идентификатор ресурса. Имя должно быть от 2 до 64 символов. Имя должно начинаться с буквы или числа, заканчиваться буквой, числом или символом подчеркивания и содержать только буквы, цифры, знаки подчеркивания, точки или дефисы.
подсеть mySubnet Имя или идентификатор ресурса новой или существующей подсети. Если вы хотите использовать подсеть из другой группы ресурсов или подписки, укажите идентификатор ресурса вместо имени. Обратите внимание, что подсеть делегирована гибким серверам. После делегирования эта подсеть не может использоваться для других типов ресурсов Azure.
private-dns-zone myserver.private.contoso.com Имя или идентификатор новой или существующей частной зоны DNS. Частную зону DNS можно использовать из одной группы ресурсов, другой группы ресурсов или другой подписки. Если вы хотите использовать зону из другой группы ресурсов или подписки, укажите идентификатор ресурса. CLI создает новую частную зону DNS в той же группе ресурсов, что и виртуальная сеть, если она не предоставлена пользователями.
key идентификатор ключа testKey Идентификатор ресурса первичного ключа keyvault для шифрования данных.
identity testIdentity Имя или идентификатор ресурса назначаемого пользователем удостоверения для шифрования данных.
storage-size 32 Емкость хранилища целевого База данных Azure для MySQL гибкого сервера. Минимальное значение составляет 20 ГиБ, а максимальное значение — 16 ТиБ.
tags key=value Укажите имя группы ресурсов Azure.
версия 5.7 Основная версия целевого База данных Azure для MySQL гибкого сервера.
высокая доступность ZoneRedundant Включите (ZoneRedundant или SameZone) или отключите функцию высокого уровня доступности для целевого База данных Azure для MySQL гибкого сервера. Принятые значения: Disabled, SameZone, ZoneRedundant; Значение по умолчанию: отключено.
зона 1 Зона доступности, в которую необходимо подготовить ресурс.
резервная зона 3 Сведения о зоне доступности резервного сервера при включении высокой доступности.
автоматическое увеличение хранилища Включен Включение или отключение автоматического увеличения объема хранилища для целевого База данных Azure для MySQL гибкого сервера. Значение по умолчанию — Включено. Принятые значения: отключено, включено; Значение по умолчанию: включено.
iops 500 Количество операций ввода-вывода в секунду для целевого База данных Azure для MySQL гибкий сервер. Вы получаете определенный объем бесплатных операций ввода-вывода в секунду на основе подготовленных вычислительных ресурсов и хранилища. Значение по умолчанию для операций ввода-вывода в секунду является бесплатным числом операций ввода-вывода в секунду. Дополнительные сведения о операций ввода-вывода в секунду на основе вычислений и хранилища см. в разделе "Операции ввода-вывода в секунду" в База данных Azure для MySQL гибком сервере.

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

Чтобы выполнить миграцию по сети после завершения начального заполнения из файла резервной копии с помощью База данных Azure для MySQL импорта, можно настроить реплика tion данных между источником и целевым объектом, выполнив следующие действия. Вы можете использовать позицию bin-log, записанную при принятии файла резервной копии с помощью Percona XtraBackup, чтобы настроить положение журнала на основе реплика.

Сколько времени занимает База данных Azure для MySQL Импорт для переноса экземпляра MySQL?

Производительность тестированного теста на основе размера хранилища.

Размер файла резервного копирования служба хранилища Время импорта
1 ГиБ 0 мин 23 с
10 ГБ 4 мин 24 с
100 ГиБ 10 мин 29 с
500 ГиБ 13 мин 15 с
1 TБ 22 мин 56 с
10 ТБ 2 часа 5 минут 30 с

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

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