Руководство по переносу SQL Server в База данных SQL Azure с помощью DMS (классической версии)

Внимание

Azure Database Migration Service (классическая модель) — сценарии SQL находятся в нерекомендуемом пути. С 1 августа 2023 г. вы больше не сможете создавать новые ресурсы Database Migration Service (классическая версия) для сценариев SQL Server из портал Azure. Служба будет прекращена 15 марта 2026 г. для всех клиентов. Для простой миграции из нескольких источников базы данных в целевые объекты SQL Azure рекомендуется использовать последнюю версию Azure Database Migration Service, которая доступна как расширение миграции SQL Azure в Azure Data Studio или с помощью портала Azure или Azure PowerShell и Azure CLI. Дополнительные сведения см. в разделе "Уведомление о выходе на пенсию": Database Migration Service (классическая модель).</a0>

Примечание.

В этом руководстве используется более ранняя версия Azure Database Migration Service. Для улучшения функциональности и поддержки рекомендуется перенести в База данных SQL Azure с помощью расширения миграции SQL Azure для Azure Data Studio.

Чтобы сравнить функции между версиями, просмотрите версии сравнения.

Azure Database Migration Service позволяет переносить базы данных из экземпляра SQL Server в Базу данных SQL Azure. Из этого руководства вы узнаете, как перенести базу данных Adventureworks2016, восстановленную в локальном экземпляре SQL Server 2016 (или более поздней версии), в отдельную базу данных или базу данных в пуле в службе "База данных SQL Azure" с помощью Azure Database Migration Service.

Вы научитесь:

  • оценивать свою локальную базу данных на наличие проблем, мешающих переносу, с помощью Помощника по миграции данных;
  • использовать Помощник по миграции данных для переноса примера схемы для базы данных;
  • регистрировать поставщик ресурсов Azure DataMigration.
  • Создайте экземпляр Azure Database Migration Service.
  • создание проекта миграции с использованием Azure Database Migration Service.
  • выполнение миграции.
  • Мониторинг миграции.

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

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

  • Скачайте и установите SQL Server 2016 или более поздней версии.

  • При установке SQL Server Express протокол TCP/IP отключен по умолчанию. Включите его, выполнив инструкции в статье Включение или отключение сетевого протокола сервера.

  • Восстановление базы данных AdventureWorks2016 в экземпляре SQL Server.

  • Создайте базу данных в службе "База данных SQL Azure", следуя инструкциям из статьи Создание базы данных в Базе данных SQL Azure с помощью портала Azure. В рамках этого руководства для базы данных SQL Azure используется имя AdventureWorksAzure, но вы можете назвать ее иначе.

    Примечание.

    Если вы используете SQL Server Integration Services (SSIS) и вам нужно перенести базу данных каталога для проектов и пакетов служб SSIS (SSISDB) из SQL Server в Базу данных SQL Azure, создание и администрирование целевой базы данных SSISDB будет происходить автоматически от вашего имени, когда вы подготовите к работе SSIS в Фабрике данных Azure (ADF). Дополнительные сведения о миграции пакетов SSIS см. в статье Перенос пакетов SQL Server Integration Services в Azure.

  • Скачайте и установите последнюю версию Помощника по миграции данных.

  • Создайте виртуальную сеть Microsoft Azure для Azure Database Migration Service с помощью модели развертывания Azure Resource Manager. Она обеспечивает подключение "сеть — сеть" к локальным исходным серверам через ExpressRoute или VPN. Дополнительные сведения см. в статье Документация по виртуальной сети, где особое внимание стоит уделить кратким руководствам с пошаговыми инструкциями.

    Примечание.

    Если вы используете ExpressRoute с пиринговым подключением к сети, управляемой Майкрософт, во время настройки виртуальной сети добавьте в подсеть, в которой будет подготовлена служба, следующие конечные точки:

    • Целевая конечная точка базы данных (например, конечная точка SQL, конечная точка Azure Cosmos DB и т. д.)
    • конечную точку службы хранилища;
    • конечную точку служебной шины.

    Такая конфигурация вызвана тем, что у Azure Database Migration Service нет подключения к Интернету.

    Если у вас нет подключения типа "сеть — сеть" между локальной сетью и Azure или при наличии ограниченной пропускной способности подключения типа "сеть — сеть", рассмотрите возможность использования Azure Database Migration Service в гибридном режиме (предварительная версия). Гибридный режим использует локальный рабочий процесс миграции вместе с экземпляром Azure Database Migration Service, который работает в облаке. Сведения о создании экземпляра Azure Database Migration Service в гибридном режиме см. в статье Создание экземпляра Azure Database Migration Service в гибридном режиме с помощью портала Azure.

  • Убедитесь, что правила безопасности для исходящего трафика в группе безопасности сети для виртуальной сети не блокируют исходящий порт 443 ServiceTag для Служебной шины, службы хранилища и Azure Monitor. См. дополнительные сведения о фильтрации трафика, предназначенного для виртуальной сети Azure, с помощью групп безопасности сети.

  • Настройте брандмауэр Windows для доступа к ядру СУБД.

  • Откройте брандмауэр в Windows, чтобы разрешить Azure Database Migration Service получить доступ к исходному SQL Server, который по умолчанию является TCP-портом 1433. Если ваш экземпляр по умолчанию прослушивает какой-либо другой порт, добавьте его в брандмауэр.

  • Если вы используете несколько именованных экземпляров SQL Server с помощью динамических портов, вы можете включить службу браузера SQL и разрешить доступ к порту UDP 1434 через брандмауэры, чтобы Служба Azure Database Migration Service могла подключаться к именованном экземпляру на исходном сервере.

  • При использовании брандмауэра (модуль) перед исходными базами данных может потребоваться добавить правила брандмауэра, чтобы разрешить Azure Database Migration Service получить доступ к исходным базам данных для миграции.

  • Создайте правило брандмауэра для IP-адресов в Базе данных SQL Azure, чтобы предоставить службе Azure Database Migration Service доступ к целевым базам данных. Задайте диапазон подсети в виртуальной сети, которая используется для Azure Database Migration Service.

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

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

    Внимание

    Для создания экземпляра Azure Database Migration Service требуется доступ к параметрам виртуальной сети, которые обычно не находятся в одной группе ресурсов. В результате пользователю, создающему экземпляр DMS, требуется разрешение на уровне подписки. Чтобы создать необходимые роли, которые можно назначить при необходимости, выполните следующий скрипт:

    
    $readerActions = `
    "Microsoft.Network/networkInterfaces/ipConfigurations/read", `
    "Microsoft.DataMigration/*/read", `
    "Microsoft.Resources/subscriptions/resourceGroups/read"
    
    $writerActions = `
    "Microsoft.DataMigration/services/*/write", `
    "Microsoft.DataMigration/services/*/delete", `
    "Microsoft.DataMigration/services/*/action", `
    "Microsoft.Network/virtualNetworks/subnets/join/action", `
    "Microsoft.Network/virtualNetworks/write", `
    "Microsoft.Network/virtualNetworks/read", `
    "Microsoft.Resources/deployments/validate/action", `
    "Microsoft.Resources/deployments/*/read", `
    "Microsoft.Resources/deployments/*/write"
    
    $writerActions += $readerActions
    
    # TODO: replace with actual subscription IDs
    $subScopes = ,"/subscriptions/00000000-0000-0000-0000-000000000000/","/subscriptions/11111111-1111-1111-1111-111111111111/"
    
    function New-DmsReaderRole() {
    $aRole = [Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new()
    $aRole.Name = "Azure Database Migration Reader"
    $aRole.Description = "Lets you perform read only actions on DMS service/project/tasks."
    $aRole.IsCustom = $true
    $aRole.Actions = $readerActions
    $aRole.NotActions = @()
    
    $aRole.AssignableScopes = $subScopes
    #Create the role
    New-AzRoleDefinition -Role $aRole
    }
    
    function New-DmsContributorRole() {
    $aRole = [Microsoft.Azure.Commands.Resources.Models.Authorization.PSRoleDefinition]::new()
    $aRole.Name = "Azure Database Migration Contributor"
    $aRole.Description = "Lets you perform CRUD actions on DMS service/project/tasks."
    $aRole.IsCustom = $true
    $aRole.Actions = $writerActions
    $aRole.NotActions = @()
    
      $aRole.AssignableScopes = $subScopes
    #Create the role
    New-AzRoleDefinition -Role $aRole
    }
    
    function Update-DmsReaderRole() {
    $aRole = Get-AzRoleDefinition "Azure Database Migration Reader"
    $aRole.Actions = $readerActions
    $aRole.NotActions = @()
    Set-AzRoleDefinition -Role $aRole
    }
    
    function Update-DmsConributorRole() {
    $aRole = Get-AzRoleDefinition "Azure Database Migration Contributor"
    $aRole.Actions = $writerActions
    $aRole.NotActions = @()
    Set-AzRoleDefinition -Role $aRole
    }
    
    # Invoke above functions
    New-DmsReaderRole
    New-DmsContributorRole
    Update-DmsReaderRole
    Update-DmsConributorRole
    

Оценка локальной базы данных

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

  1. В помощнике по миграции данных выберите значок "Создать" (+), а затем выберите тип проекта Оценка.

  2. Укажите имя проекта. В раскрывающемся списке Тип оценки выберите Ядро СУБД, в текстовом поле Тип исходного сервера выберите SQL Server, в текстовом поле Тип целевого сервера — База данных SQL Azure, а затем нажмите кнопку Создать, чтобы создать проект.

    При оценке исходной базы данных SQL Server, переносимой в отдельную базу данных или базу данных в составе пула в Базе данных SQL Azure, можно выбрать один или несколько следующих типов отчетов об оценке:

    • проверка совместимости базы данных;
    • проверка равенства функций.

    По умолчанию выбраны оба типа отчетов.

  3. В помощнике по миграции данных на экране Параметры выберите Далее.

  4. На экране Выберите источники в диалоговом окне Соединение с сервером предоставьте сведения о подключении к SQL Server, а затем выберите Подключить.

  5. В диалоговом окне Добавление источников выберите Adventureworks2016, а затем щелкните Добавить и выберите Начать оценку.

    Примечание.

    Если вы используете службы SSIS, обратите внимание, что сейчас DMA не поддерживает оценку базы данных-источника SSISDB. Но проекты и пакеты служб SSIS пройдут оценку и проверку, как только они будут повторно развернуты в целевую базу данных SSISDB, размещенную в Базе данных SQL Azure. Дополнительные сведения о миграции пакетов SSIS см. в статье Перенос пакетов SQL Server Integration Services в Azure.

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

    Assess data migration

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

    • Для категории четности компонентов SQL Server доступны разные рекомендации, а также описание альтернативных механизмы, используемых в Azure, и мер по устранению, которые помогут вам рассчитать трудозатраты для выполнения миграции.
    • Категория проблем совместимости определяет частично поддерживаемые или неподдерживаемые возможности, связанные с проблемами совместимости, которые могут блокировать перенос баз данных SQL Server в Базу данных SQL Azure. Также предлагаются рекомендации, которые помогут вам решить эти проблемы.
  6. Просмотрите результаты оценки проблем, блокирующих миграцию, и проблем с четностью компонентов, выбрав конкретные параметры.

Перенос примера схемы

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

Примечание.

Прежде чем создавать проект миграции в Data Migration Assistant, убедитесь, что база данных в Azure уже подготовлена, как описано выше.

Внимание

Если вы используете службы SSIS, обратите внимание, что сейчас DMA не поддерживает перенос базы данных-источника SSISDB, но вы можете повторно развернуть проекты и пакеты служб SSIS в целевую базу данных SSISDB, размещенную в Базе данных SQL Azure. Дополнительные сведения о миграции пакетов SSIS см. в статье Перенос пакетов SQL Server Integration Services в Azure.

Чтобы перенести схему базы данных Adventureworks2016 в отдельную базу данных или базу данных в пуле в службе "База данных SQL Azure", выполните следующие действия.

  1. В Помощнике по миграции данных щелкните значок New (+) (Создать (+)), а затем в разделе Project type (Тип проекта) выберите Migration (Миграция).

  2. Укажите имя проекта в текстовом поле Source server type (Тип исходного сервера), выберите SQL Server, а затем в текстовом поле Target server type (Тип целевого сервера) выберите База данных SQL Azure.

  3. В разделе Migration Scope (Область переноса) выберите Schema only (Только схема).

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

    Create Data Migration Assistant Project

  4. Выберите Создать, чтобы создать проект.

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

    Data Migration Assistant Source Connection Details

  6. В разделе Подключение к целевому серверу выберите Далее, укажите сведения о подключении к целевому объекту для базы данных SQL Azure, нажмите Подключить, а затем выберите базу данных AdventureWorksAzure, предварительно подготовленную в Базе данных SQL Azure.

    Data Migration Assistant Target Connection Details

  7. Выберите Далее, чтобы перейти на экран Выбор объектов, на котором можно указать объекты схемы в базе данных Adventureworks2016, которую нужно развернуть в службе "База данных SQL Azure".

    По умолчанию выбраны все объекты.

    Generate SQL Scripts

  8. Выберите Создать скрипт SQL, чтобы создать скрипт SQL, а затем просмотрите его на наличие ошибок.

    Schema Script

  9. Выберите Deploy schema (Развернуть схему), чтобы развернуть схему в Базе данных SQL Azure, а затем проверьте целевой сервер на наличие аномалий.

    Deploy Schema

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

Прежде чем создать свой первый экземпляр Database Migration Service, зарегистрируйте поставщик ресурсов Microsoft.DataMigration.

  1. Войдите на портал Azure. Выполните поиск по запросу Подписки и выберите этот пункт.

    Show portal subscriptions

  2. Выберите подписку, в которой нужно создать экземпляр Azure Database Migration Service, а затем щелкните Поставщики ресурсов.

    Show resource providers

  3. В поле поиска введите migration, а затем щелкните элемент Зарегистрировать рядом с Microsoft.DataMigration.

    Register resource provider

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

  1. На домашней странице или в меню портала Azure щелкните элемент Создать ресурс. Найдите и выберите элемент Azure Database Migration Service.

    Azure Marketplace

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

    Create Azure Database Migration Service instance

    Выберите соответствующий тип исходного сервера и тип целевого сервера и выберите параметр Database Migration Service (классическая модель).

    Select Database Migration Service (Classic) scenario

  3. На экране основных сведений Создание Migration Service сделайте следующее:

    • Выберите подписку.
    • Создайте группу ресурсов или выберите существующую.
    • Укажите имя для экземпляра Azure Database Migration Service.
    • Выберите расположение, в котором нужно создать экземпляр Azure Database Migration Service.
    • Выберите Azure в качестве режима службы.
    • Выберите ценовую категорию. Дополнительные сведения о ценовых категориях и затратах см. на странице с описанием цен.

    Configure Azure Database Migration Service instance basics settings

    • Выберите Далее: сеть.
  4. На экране сети Создание Migration Service сделайте следующее:

    Configure Azure Database Migration Service instance networking settings

    • Выберите Проверить и создать, чтобы проверить сведения, а затем щелкните Создать, чтобы создать службу.

    • Через несколько минут экземпляр службы Azure Database Migration service создается и готов к использованию:

    Migration service created

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

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

  1. В меню портала Azure выберите Все службы. Найдите и выберите элемент Службы Azure Database Migration Service.

    Locate all instances of Azure Database Migration Service

  2. На экране Службы Azure Database Migration Service выберите созданный экземпляр Azure Database Migration Service.

  3. Щелкните элемент Новый проект миграции.

    Locate your instance of Azure Database Migration Service

  4. На экране Новый проект миграции задайте имя для проекта, в текстовом поле Тип исходного сервера выберите SQL Server, в текстовом поле Тип целевого сервера выберите База данных SQL Azure, а затем для параметра Выберите тип действия миграции установите значение Миграция данных.

    Create Database Migration Service Project

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

Укажите сведения об источнике.

  1. На экране Выбор источника укажите сведения о подключении для исходного экземпляра SQL Server.

    Используйте для имени исходного экземпляра SQL Server полное доменное имя (FQDN). Если разрешение DNS-имен невозможно, можно использовать IP-адрес.

  2. Если на исходном сервере доверенный сертификат не установлен, установите флажок Доверять сертификату сервера.

    Если доверенный сертификат не установлен, SQL Server создает самозаверяющий сертификат при запуске экземпляра. Этот сертификат используется с целью шифрования учетных данных для клиентских подключений.

    Внимание

    TLS-соединения, шифруемые с помощью самозаверяющего сертификата, не обеспечивают надежной защиты. Они уязвимы для атак "злоумышленник в середине". Не следует надеяться на защиту TLS с самозаверяющими сертификатами в рабочей среде или на серверах, подключенных к Интернету.

    Внимание

    Если вы используете службы SSIS, обратите внимание, что сейчас DMS не поддерживает перенос базы данных-источника SSISDB, но вы можете повторно развернуть проекты и пакеты служб SSIS в целевую базу данных SSISDB, размещенную в Базе данных SQL Azure. Дополнительные сведения о миграции пакетов SSIS см. в статье Перенос пакетов SQL Server Integration Services в Azure.

    Source Details

  3. Нажмите кнопку Далее: Выбрать базу данных.

Выбор баз данных для миграции

Выберите базы данных, которые нужно перенести в Базу данных SQL Azure. Служба DMS предоставит вам информацию об ожидаемом времени миграции для выбранных баз данных. Если такое время простоя приемлемо, продолжайте миграцию. Если время простоя миграции неприемлемо, рассмотрите возможность миграции в Управляемый экземпляр SQL с почти нулевым временем простоя или отправкой идей и предложений для улучшения и других отзывов на форуме сообщества Azure — Azure Database Migration Service.

  1. Из списка доступных баз данных выберите те, которые необходимо перенести.

  2. Обратите внимание на ожидаемое время простоя. Если это допустимо, нажмите кнопку Next: Select target (Выбрать целевой объект). >>

    Source databases

Укажите сведения о целевом объекте.

  1. На экране Выбор целевого объекта укажите параметры проверки подлинности для Базы данных SQL Azure.

    Select target

    Примечание.

    Сейчас проверка подлинности SQL является единственным поддерживаемым типом проверки подлинности.

  2. Нажмите кнопку "Далее" — сопоставление с целевыми базами данных , сопоставление источника и целевой базы данных для миграции.

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

    Map to target databases

  3. Нажмите кнопку "Далее": параметры миграции конфигурации, разверните список таблиц и просмотрите список затронутых полей.

    Azure Database Migration Service автоматически выбирает все пустые исходные таблицы в целевом экземпляре Базы данных SQL. Чтобы повторно перенести таблицы, уже содержащие данные, необходимо явным образом выбрать их в этой колонке.

    Select tables

  4. Нажмите кнопку "Далее": сводка, просмотр конфигурации миграции и в текстовом поле "Имя действия" укажите имя для действия миграции.

    Choose validation option

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

  • Выберите Начать миграцию.

    Появится окно действия миграции, в котором будет указано состояние действия Ожидание.

    Activity Status

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

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

    Activity Status Completed

  2. Проверьте целевые базы данных в целевой Базе данных SQL Azure.

Дополнительные ресурсы