Поделиться через


Руководство по переносу SQL Server в База данных SQL Azure (в автономном режиме)

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

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

В этом руководстве описано следующее:

  • Создание экземпляра Azure Database Migration Service
  • Начните миграцию и выполняйте мониторинг хода выполнения до завершения

Внимание

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

Варианты переноса

В следующем разделе описывается использование Azure Database Migration Service с порталом Azure.

Предварительные требования

Прежде чем приступить к учебнику:

  • Убедитесь, что вы можете получить доступ к порталу Azure.

  • Убедитесь, что поставщик ресурсов Microsoft.DataMigration зарегистрирован в вашей подписке.

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

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

    В качестве альтернативы использованию одной из этих встроенных ролей можно назначить пользовательскую роль.

  • Создайте Базу данных SQL Azure целевую.

  • Убедитесь, что имя входа в SQL Server для подключения к исходному экземпляру является членом роли db_datareader, а имя входа для целевого экземпляра SQL Server является членом роли db_owner.

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

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

Роли Описание
##MS_DatabaseManager## Члены предопределенных ролей сервера ##MS_DatabaseManager## могут создавать и удалять базы данных. Участник роли ##MS_DatabaseManager###, которая создает базу данных, становится владельцем этой базы данных, что позволяет пользователю подключаться к этой базе данных в качестве пользователя dbo. Пользователь dbo имеет все разрешения в этой базе данных. Члены роли ##MS_DatabaseManager## не обязательно имеют разрешения на доступ к базам данных, которым они не принадлежат. Рекомендуется использовать эту роль сервера вместо роли уровня базы данных dbmanager, которая существует в master базе данных.
##MS_DatabaseConnector## Члены фиксированной роли сервера ##MS_DatabaseConnector## могут подключаться к любой базе данных без необходимости иметь учетную запись пользователя в этой базе данных.
##MS_DefinitionReader## Члены предопределенных ролей сервера ##MS_DefinitionReader## могут читать все представления каталога, охватываемые VIEW ANY DEFINITION любой базой данных, в которой член этой роли имеет учетную запись пользователя.
##MS_LoginManager## Члены предопределенных ролей сервера ##MS_LoginManager## могут создавать и удалять имена входа. Рекомендуется использовать эту роль сервера вместо роли уровня базы данных loginmanager, которая существует в master базе данных.

Подготовка целевой базы данных SQL Azure

Чтобы создать имя входа и пользователя в целевой базе данных SQL Azure, выполните следующий сценарий в master базе данных:

CREATE LOGIN testuser WITH PASSWORD = '<password>';

ALTER SERVER ROLE ##MS_DefinitionReader## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_DatabaseConnector## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_DatabaseManager## ADD MEMBER [testuser];
GO

ALTER SERVER ROLE ##MS_LoginManager## ADD MEMBER [testuser];
GO

CREATE USER testuser FOR LOGIN testuser;
EXECUTE sp_addRoleMember 'dbmanager', 'testuser';
EXECUTE sp_addRoleMember 'loginmanager', 'testuser';

Теперь можно перенести схему базы данных и данные с помощью Database Migration Service. Вы также можете использовать другие средства, такие как расширение проектов баз данных SQL в Visual Studio Code, чтобы перенести схему перед выбором списка таблиц для миграции.

Примечание.

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

Создайте экземпляр службы переноса данных.

Шаг 1. В портал Azure перейдите на страницу Azure Database Migration Service. Создайте новый экземпляр Azure Database Migration Service или повторно используйте существующий экземпляр, созданный ранее.

Используйте существующий экземпляр Службы миграции баз данных

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

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

    Снимок экрана, показывающий обзор службы миграции баз данных.

Создайте новый экземпляр службы миграции баз данных

Чтобы создать новый экземпляр Database Migration Service, выполните приведенные действия.

  1. На портале Azure в разделе Azure Database Migration Service выберите Создать.

    Снимок экрана: параметр создания Database Migration Service.

  2. В разделе "Выбор сценария миграции" и Database Migration Service выберите нужные входные данные, такие как тип исходного и целевого сервера, выберите Database Migration Service и нажмите кнопку "Выбрать".

    Сценарии миграции в службе Database Migration Service на снимке экрана.

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

    Снимок экрана, на котором показаны необходимые сведения о входных данных Database Migration Service.

  4. Если требуется локальная среда выполнения интеграции (SHIR), на странице обзора службы Database Migration Service и в разделе "Параметры", выберите среду выполнения интеграции и выполните следующие действия:

    1. Выберите "Настройка среды выполнения интеграции" и выберите ссылку "Скачать и установить среду выполнения интеграции", чтобы открыть ссылку загрузки в веб-браузере. Скачайте среду выполнения интеграции и установите ее на компьютере, который соответствует предварительным требованиям для подключения к исходному экземпляру SQL Server. Дополнительные сведения см. в разделе " Локальная среда выполнения интеграции" для миграции баз данных.

      Снимок экрана: ссылка

      После завершения установки Диспетчер конфигурации среды выполнения интеграции Майкрософт автоматически открывается, чтобы начать процесс регистрации.

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

      Снимок экрана, выделяющий таблицу ключей аутентификации в мастере.

      Если ключ проверки подлинности действителен, в Configuration Manager среды выполнения интеграции появится зеленый значок проверки. Зеленая проверка указывает, что вы можете продолжить регистрацию.

      После регистрации локальной среды выполнения интеграции закройте Microsoft Integration Runtime Configuration Manager. Может потребоваться несколько минут, чтобы отразить сведения о узле на портале Azure для Database Migration Service в разделе параметров интеграции времени выполнения.

      Снимок экрана, на котором показано состояние SHIR в портале Azure.

      Примечание.

      Дополнительные сведения о локальной среде выполнения интеграции см. в статье "Создание и настройка локальной среды выполнения интеграции".

Запуск новой миграции

  1. Чтобы начать новую миграцию, перейдите в Azure Database Migration Service на портале Azure и либо используйте +Создать, чтобы создать новый экземпляр Database Migration Service, либо выберите существующий экземпляр, а затем перейдите к своему экземпляру Azure Database Migration Service.

  2. На панели "Обзор " экземпляра Azure Database Migration Service выберите "Создать миграцию":

    Снимок экрана: панель мониторинга миграции базы данных Azure.

  3. В разделе "Выбор нового сценария миграции " выберите исходный, целевой тип сервера, режим миграции и выберите "Выбрать".

    Снимок экрана: выбор нового сценария миграции.

  4. В мастере автономной миграции базы данных SQL Azure выполните следующие действия.

    1. На вкладке "Сведения о источнике" введите сведения для исходного экземпляра SQL Server и нажмите кнопку "Далее: Подключение к исходному SQL Server".

      Снимок экрана: отслеживание источника.

    2. На вкладке "Подключение к исходному SQL Server" укажите сведения о подключении и нажмите кнопку "Далее: Выберите базы данных для миграции".

      Снимок экрана: подключение к источнику.

    3. На вкладке "Выбор баз данных для миграции " установите флажок рядом с базами данных, которые требуется перенести. Заполнение списка баз данных может занять некоторое время. Нажмите кнопку "Далее" — подключение к целевой базе данных SQL Azure.

      Снимок экрана: выбор базы данных.

    4. На вкладке "Подключение к целевой базе данных SQL Azure" укажите сведения о подключении и нажмите кнопку "Далее: сопоставление исходных и целевых баз данных"

      Снимок экрана: целевой объект подключения.

    5. На вкладке "Источник карты" и "Целевые базы данных " сопоставляйте базы данных между источником и целевым объектом.

      Снимок экрана: базы данных карты.

    6. (Необязательно) Установите флажок "Миграция отсутствующих объектов схемы", чтобы развернуть отсутствующие объекты схемы из источника в целевую базу данных Azure SQL и перенести следующие объекты схемы, установив один флажок:

      • Схемы
      • Таблицы (выбранные)
      • Индексы
      • Представления
      • Хранимые процедуры (StoredProcedures)
      • Синонимы
      • Триггеры DDL (DdlTriggers)
      • Параметры по умолчанию
      • Полнотекстовые каталоги (FullTextCatalogs)
      • Руководства по планированию (PlanGuides)
      • Роли
      • Правила
      • Роли приложения (ApplicationRoles)
      • Определяемые пользователем агрегаты (UserDefinedAggregates)
      • Определяемые пользователем типы данных (UserDefinedDataTypes)
      • Определяемые пользователем функции (UserDefinedFunctions)
      • Определяемые пользователем типы таблиц (UserDefinedTableTypes)
      • Определяемые пользователем типы (UserDefinedTypes)
      • Пользователи* (не каждый тип пользователя)
      • XmlSchemaCollections

      Примечание.

      • Если выбрать " Миграция отсутствующих схем", служба "Миграция базы данных" выполняет миграцию схемы перед переносом данных.
      • DMS продолжает этап миграции данных, даже если миграция схемы сталкивается с ошибками, за исключением случаев, когда возникают проблемы с объектами таблицы.

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

      Снимок экрана: выбор схемы и таблиц.

    7. На вкладке "Сводка по миграции базы данных " просмотрите сведения и нажмите кнопку "Начать миграцию", которая запускает миграцию базы данных и автоматически возвращается на панель мониторинга Database Migration Service.

      Снимок экрана: сводка.

      Примечание.

      Для автономной миграции время простоя приложения начинается при запуске миграции.

Мониторинг миграции базы данных

  1. Чтобы отслеживать миграцию базы данных, на панели "Обзор " экземпляра Database Migration Service выберите "Мониторинг миграций".

    Снимок экрана: обзор Azure Database Migration Service на портале Azure.

  2. На вкладке "Миграции " можно отслеживать миграции, выполняемые, завершенные и неудачные (если таковые имеются) или просматривать все миграции баз данных. В строке меню выберите "Обновить ", чтобы обновить состояние миграции.

    Снимок экрана: мониторинг панели мониторинга DMS.

    Database Migration Service возвращает последнее известное состояние миграции при каждом обновлении состояния миграции. В следующей таблице описаны возможные состояния:

    Состояние Описание
    создание Служба запускает миграцию.
    Подготовка к копированию Служба отключает автостаты, триггеры и индексы в целевой таблице.
    Копирование Данные копируются из исходной базы данных в целевую базу данных.
    Копирование завершено Копирование данных завершено. Служба ожидает завершения копирования других таблиц, чтобы начать окончательные шаги, чтобы вернуть таблицы в исходную схему.
    Перестроение индексов Служба перестраивает индексы в целевых таблицах.
    Успешно Все данные скопированы, и индексы перестроены.
  3. В разделе "Имя источника" выберите имя базы данных, чтобы открыть представление таблицы.. В этом подробном представлении отображается текущее состояние миграции, количество таблиц, которые в настоящее время находятся в этом состоянии, и подробное состояние каждой таблицы:

    Снимок экрана: подробный мониторинг миграции.

  4. Когда все данные таблицы переносятся в целевой объект База данных SQL Azure, Database Migration Service обновляет состояние миграции от "Выполняется до успешно".

    Снимок экрана: подробный успех миграции.

Примечание.

Database Migration Service оптимизирует миграцию, пропуская таблицы без данных (0 строк). Таблицы, у которых нет данных, не отображаются в списке, даже если вы выбрали таблицы при создании миграции.

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


Ограничения

Автономная миграция базы данных Azure SQL использует конвейеры Azure Data Factory (ADF) для перемещения данных и поэтому соблюдает ограничения ADF. Соответствующий ADF создается при создании службы миграции базы данных. Таким образом, ограничения фабрики применяются для каждой службы.

  • Компьютер, на котором установлен SHIR, выполняет роль вычислительного узла для миграции. Убедитесь, что этот компьютер может справиться с нагрузкой на процессор и память при копировании данных. Дополнительные сведения см. в статье "Создание и настройка локальной среды выполнения интеграции".
  • 100 000 таблиц на одну базу данных.
  • 10 000 одновременных миграций баз данных на службу.
  • Скорость миграции сильно зависит от целевого SKU базы данных Azure SQL и узла автономной среды выполнения интеграции.
  • Масштабирование миграции базы данных Azure SQL работает плохо с увеличением количества таблиц из-за накладных расходов ADF при запуске задач. Если база данных содержит тысячи таблиц, процесс запуска каждой таблицы может занять несколько секунд, даже если они состоят из одной строки с 1 битом данных.
  • В настоящее время имена таблиц базы данных Azure SQL с двухбайтовыми символами не поддерживаются для миграции. Устранение рисков — переименование таблиц перед миграцией; после успешной миграции их можно изменить на исходные имена.
  • Таблицы с большими BLOB-столбцами могут не мигрировать из-за превышения времени ожидания.
  • Имена баз данных с зарезервированными SQL Server в настоящее время не поддерживаются.
  • Имена баз данных, включающие запятую, в настоящее время не поддерживаются.
  • Вычисляемые столбцы не переносятся.
  • Столбцы в исходной базе данных, имеющие ограничения по умолчанию и содержащие NULL значения, переносятся с определенными значениями по умолчанию в целевой базе данных SQL Azure, а не сохраняют NULLs.