Перенос локальной рабочей нагрузки 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). При выполнении полного резервного копирования выполните следующие команды:
- ** xtrabackup --backup --host={host} --user={user} --password={password} --target-dir={backup__dir_path}**
- ** xtrabackup --prepare -{backup_dir_path}** (укажите тот же путь резервного копирования, что и в предыдущей команде).
Рекомендации при принятии Percona XtraBackup:
- Убедитесь, что выполняется как резервное копирование, так и шаг подготовки.
- Убедитесь, что в шаге резервного копирования и подготовки отсутствуют ошибки.
- Сохраните журналы резервного копирования и подготовьте журналы шагов для поддержки Azure, что требуется в случае сбоев.
Внимание
Попытка получить доступ к поврежденным таблицам, импортированным с исходного сервера, может привести к сбою гибкого сервера. В результате перед созданием резервного копирования с помощью служебной программы Percona XtraBackup настоятельно рекомендуется выполнить операцию mysqlcheck /Optimize Table на исходном сервере.
Создайте контейнер BLOB-объектов Azure и получите маркер подписанного URL-адреса (SAS) (портал Azure или Azure CLI) для контейнера. Убедитесь, что вы предоставляете в раскрывающемся списке разрешений добавление, создание и запись. Скопируйте значения маркера SAS большого двоичного объекта и URL-адреса и вставьте их в безопасное место. Они отображаются только один раз и не могут быть извлечены после закрытия окна.
Отправьте полный файл резервного копирования в {backup_dir_path} в хранилище BLOB-объектов Azure. Выполните следующие действия, чтобы отправить файл.
Чтобы выполнить миграцию по сети, захватить и сохранить положение файла резервной копии, выполняемого с помощью Percona XtraBackup, выполните команду cat xtrabackup_info и скопируйте выходные данные bin_log pos.
Учетная запись хранения Azure должна быть общедоступной с помощью маркера SAS. Учетная запись хранения Azure с конфигурацией виртуальной сети не поддерживается.
Ограничения
- Конфигурация исходного сервера не переносится. Необходимо правильно настроить целевой гибкий сервер.
- Миграция зашифрованных резервных копий не поддерживается.
- Пользователи и привилегии не переносятся в рамках База данных Azure для MySQL импорта. Перед запуском База данных Azure для MySQL Import необходимо выполнить дампы вручную, чтобы перенести операции входа после импорта, восстанавливая их на целевом гибком сервере.
- user1@localhost нельзя перенести, так как не поддерживается создание пользователя localhost на гибком сервере.
- Гибкие серверы с поддержкой высокой доступности возвращаются как отключенные от высокой доступности серверы для повышения скорости миграции после миграции. Включите высокий уровень доступности для целевого гибкого сервера после миграции.
Рекомендации по оптимальной миграции
- Рекомендуется сохранить учетную запись хранения BLOB-объектов Azure и целевой гибкий сервер для развертывания в одном регионе для повышения производительности импорта.
- Рекомендуемая конфигурация SKU для целевого База данных Azure для MySQL гибкий сервер —
- Настройка номера SKU для целевого объекта не рекомендуется оптимизировать время миграции при выполнении операции импорта База данных Azure для MySQL. Мы рекомендуем масштабировать до общего назначения или критически важный для бизнеса для выполнения операции импорта, после чего можно уменьшить масштаб до номера 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 импорта, можно настроить репликацию данных между источником и целевым объектом, выполнив следующие действия. Вы можете использовать позицию bin-log, записанную при принятии файла резервной копии с помощью Percona XtraBackup, чтобы настроить репликацию на основе расположения bin-log.
Сколько времени занимает База данных Azure для MySQL Импорт для переноса экземпляра MySQL?
Производительность тестированного теста на основе размера хранилища.
Размер хранилища файлов резервного копирования | Время импорта |
---|---|
1 ГиБ | 0 мин 23 с |
10 ГБ | 4 мин 24 с |
100 ГиБ | 10 мин 29 с |
500 ГиБ | 13 мин 15 с |
1 TБ | 22 мин 56 с |
10 ТБ | 2 часа 5 минут 30 с |
По мере увеличения размера хранилища время, необходимое для копирования данных, также увеличивается почти в линейной связи. Однако важно отметить, что колебания сети могут значительно повлиять на скорость копирования. Таким образом, указанные здесь данные должны приниматься только в качестве ссылки.