Перенос баз данных в масштабе с помощью автоматизации (предварительная версия)

Расширение миграции SQL Azure для Azure Data Studio объединяет упрощенную оценку, рекомендации и миграцию, которая обеспечивает следующие возможности:

  • Расширенный механизм оценки может оценивать экземпляры SQL Server, определяя базы данных, готовые к миграции в различные целевые объекты SQL Azure.
  • Подсистема рекомендаций SKU (предварительная версия), которая собирает данные о производительности из локального экземпляра SQL Server исходного экземпляра SQL Server, создавая рекомендации по правильному размеру SKU на основе целевого объекта SQL Azure.
  • Надежная служба Azure с поддержкой Azure Database Migration Service, которая управляет действиями перемещения данных для обеспечения простой миграции.
  • Возможность запуска в сети (для миграций, требующих минимального простоя) или автономной (для миграций, где время простоя сохраняется через миграцию) режимов миграции в соответствии с вашими бизнес-требованиями.
  • Гибкость создания и настройки локальной среды выполнения интеграции для предоставления собственных вычислительных ресурсов для доступа к исходному SQL Server и резервным копиям в локальной среде.

С помощью таких средств автоматизации, как PowerShell — модуль службы Azure DataMigration или Azure CLI, можно применить возможности расширения миграции SQL Azure вместе с Azure Database Migration Service для переноса одной или нескольких баз данных в масштабе (включая базы данных в нескольких экземплярах SQL Server).

На следующие примеры сценариев можно ссылаться на сценарии миграции с помощью Azure PowerShell или Azure CLI:

Сценарий миграции Язык сценария
Оценка SQL Server PowerShell / Azure CLI
SQL Server для Управляемый экземпляр SQL Azure (с помощью общей папки) PowerShell / Azure CLI
SQL Server для Управляемый экземпляр SQL Azure (с помощью службы хранилища Azure) PowerShell / Azure CLI
SQL Server в SQL Server в Azure Виртуальные машины (с помощью общей папки) PowerShell / Azure CLI
SQL Server в SQL Server в Azure Виртуальные машины (с помощью служба хранилища Azure) PowerShell / Azure CLI
SQL Server для База данных SQL Azure PowerShell / Azure CLI
Рекомендации по SKU (предварительная версия) PowerShell / Azure CLI
Сквозная автоматизация миграции PowerShell / Azure CLI
Сквозная автоматизация миграции для нескольких баз данных PowerShell / Azure CLI

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

Предварительные требования, которые являются общими для всех поддерживаемых сценариев миграции с помощью Azure PowerShell или Azure CLI:

  • У вас должна быть учетная запись Azure, назначенная одной из встроенных ролей ниже:

    • Участник целевого Управляемый экземпляр SQL Azure, SQL Server в Azure Виртуальные машины или База данных SQL Azure и служба хранилища учетная запись для отправки файлов резервной копии базы данных из общей папки S МБ (неприменимо для База данных SQL Azure).
    • Роль читателя для групп ресурсов Azure, содержащих целевые Управляемый экземпляр SQL Azure, SQL Server в Azure Виртуальные машины или База данных SQL Azure.
    • Роль владельца или участника подписки Azure.

    Важно!

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

  • Создание целевой Управляемый экземпляр SQL Azure, SQL Server на виртуальной машине Azure или База данных SQL Azure

    Важно!

    Если целевой объект База данных SQL Azure необходимо перенести схему базы данных из источника в целевой объект с помощью расширения dacpac SQL Server или расширения База данных SQL Projects для Azure Data Studio.

    Если у вас есть виртуальная машина Azure, она должна быть зарегистрирована в расширении агента IaaS SQL в режиме полного управления.

  • Если целевой объект Управляемый экземпляр SQL Azure или SQL Server на виртуальной машине Azure, убедитесь, что имена входа, используемые для подключения к исходному SQL Server, являются членами роли сервера sysadmin или имеют CONTROL SERVER разрешение.

  • Если целевой объект База данных SQL Azure, убедитесь, что имя входа, используемое для подключения к исходному SQL Server, является членом, а db_datareader имя входа для целевого SQL Server —db_owner

  • Используйте один из следующих вариантов хранения для файлов резервной копии базы данных и журналов транзакций:

    • Сетевая папка SMB
    • Общая папка учетной записи хранения Azure или контейнер больших двоичных объектов

    Важно!

    • Если файлы резервной копии базы данных предоставлены в общей сетевой папке SMB, создайте учетную запись хранения Azure, которая позволит службе DMS передать файлы резервной копии базы данных. Убедитесь, что учетная запись хранения Azure создана в том же регионе, что и экземпляр службы DMS.
    • Убедитесь, что контейнер BLOB-объектов учетной записи хранения Azure используется исключительно для хранения файлов резервной копии. Любой другой тип файлов (txt, png, jpg и т. д.) будет препятствовать процессу восстановления, что приведет к сбою.
    • Azure Database Migration Service не инициирует создание резервных копий, вместо этого он использует для миграции существующие резервные копии, которые уже могли быть созданы в рамках плана аварийного восстановления.
    • Каждая резервная копия может быть записана в отдельный файл или в несколько файлов резервных копий. При этом добавление нескольких резервных копий (например, полной и журнала транзакций) на один носитель не поддерживается.
    • Чтобы снизить вероятность возникновения потенциальных проблем, связанных с миграцией больших объемов резервных копий, можно использовать сжатые резервные копии.
  • Убедитесь, что учетная запись службы, от имени которой выполняется исходный экземпляр SQL Server, имеет разрешения на чтение и запись для этой сетевой папки SMB, содержащей файлы резервной копии базы данных.

  • Перед перенос Управляемый экземпляр SQL Azure ом данных необходимо перенести исходный сертификат экземпляра SQL Server из базы данных, защищенной прозрачное шифрование данных (TDE). Дополнительные сведения о переносе баз данных с поддержкой TDE см. в руководстве по переносу баз данных с поддержкой TDE (предварительная версия) в SQL Azure в Azure Data Studio.

    Совет

    Если база данных содержит конфиденциальные данные, защищенные с помощью Always Encrypted, процесс миграции с помощью Azure Data Studio с DMS автоматически перенесет ключи Always Encrypted в целевой Управляемый экземпляр SQL Azure или сервер SQL Server на виртуальной машине Azure.

  • Если резервные копии базы данных находятся в сетевой общей папке, предоставьте компьютер для установки локальной среды выполнения интеграции для доступа к резервным копиям базы данных и их переноса. Модули Azure PowerShell или Azure CLI предоставляют ключи проверки подлинности для регистрации локальной среды выполнения интеграции. При подготовке к миграции убедитесь, что на компьютере, где планируется установить локальную среду выполнения интеграции, включены следующие правила брандмауэра для исходящего трафика и доменные имена.

    Имена доменов Исходящие порты Description
    Общедоступное облако: {datafactory}.{region}.datafactory.azure.net
    или *.frontend.clouddatahub.net
    Azure для государственных организаций: {datafactory}.{region}.datafactory.azure.us
    Китай: {datafactory}.{region}.datafactory.azure.cn
    443 Требуется локальной среде выполнения интеграции для подключения к службе переноса данных.
    Для новой фабрики данных в общедоступном облаке извлеките полное доменное имя из ключа локальной среды выполнения интеграции, который находится в формате {datafactory}.{region}.datafactory.azure.net. Для старого экземпляра Фабрики данных, если полное доменное имя не отображается в ключе локальной среды IR, используйте *.frontend.clouddatahub.net.
    download.microsoft.com 443 Требуется локальной среде выполнения интеграции для скачивания обновлений. Если автоматическое обновление отключено, можно пропустить настройку этого домена.
    *.core.windows.net 443 Используется локальной средой выполнения интеграции, которая подключается к учетной записи хранения Azure для передачи резервных копий базы данных из общей сетевой папки.

    Совет

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

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

  • Исходящий порт 445 должен быть включен для доступа к сетевой общей папке.

  • Если вы используете Azure Database Migration Service в первый раз, убедитесь, что в вашей подписке зарегистрирован поставщик ресурсов Microsoft.DataMigration. Выполните действия по регистрации поставщика ресурсов.

    Важно!

    Если целевой объект миграции База данных SQL Azure, для выполнения этой миграции не требуется резервное копирование. Миграция на База данных SQL Azure считается логической миграцией, включающей предварительное создание базы данных и перемещение данных (выполняется DMS).

Автоматизация миграции баз данных

С помощью Azure PowerShell Az.DataMigration или Azure CLI az datamigration можно перенести базы данных, автоматизовав создание Azure Database Migration Service, настройку миграции баз данных для миграции через Интернет и выполнение переключения. Существует несколько других команд и функций, которые описаны в примерах Azure.

Пример автоматизации миграции базы данных SQL Server с помощью Azure CLI: шаг 1. Создание Azure Database Migration Service, которое будет управлять действиями миграции базы данных.

#STEP 1: Create Database Migration Service
az datamigration sql-service create --resource-group "myRG" --sql-migration-service-name "myMigrationService" --location "EastUS2"

Шаг 2. Настройка и запуск миграции из локальной базы данных SQL Server (с резервными копиями в хранилище Azure) в Управляемый экземпляр SQL Azure.

#STEP 2: Start Migration
az datamigration sql-managed-instance create `
--source-location '{\"AzureBlob\":{\"storageAccountResourceId\":\"/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.Storage/storageAccounts/dbbackupssqlbits\",\"accountKey\":\"myAccountKey\",\"blobContainerName\":\"dbbackups\"}}' `
--migration-service "/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.DataMigration/SqlMigrationServices/myMigrationService" `
--scope "/subscriptions/mySubscriptionID/resourceGroups/myRG/providers/Microsoft.Sql/managedInstances/mySQLMI" `
--source-database-name "AdventureWorks2008" `
--source-sql-connection authentication="SqlAuthentication" data-source="mySQLServer" password="myPassword" user-name="sqluser" `
--target-db-name "AdventureWorks2008" `
--resource-group myRG `
--managed-instance-name mySQLMI

Шаг 3. Выполните переход на миграцию после восстановления всех резервных копий в Управляемый экземпляр SQL Azure.

#STEP 3: Get migration ID and perform Cutover
$migOpId = az datamigration sql-managed-instance show --managed-instance-name "mySQLMI" --resource-group "myRG" --target-db-name "AdventureWorks2008" --expand=MigrationStatusDetails --query "properties.migrationOperationId"
az datamigration sql-managed-instance cutover --managed-instance-name "mySQLMI" --resource-group "myRG" --target-db-name "AdventureWorks2008" --migration-operation-id $migOpId

Если появится сообщение об ошибке "Подписка не зарегистрирована для использования пространства имен Microsoft.DataMigration". Сведения https://aka.ms/rps-not-found о регистрации подписок см. в следующей команде:

   Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"

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

  • Справочная документация по Azure PowerShell для миграции баз данных SQL Server см. в статье Az.DataMigration.
  • Справочная документация по Azure CLI для миграции баз данных SQL Server см. в az datamigration.
  • Репозиторий кода примеров Azure см. в разделе data-migration-sql