Руководство. Перенос MongoDB в Azure Cosmos DB для MongoDB в автономном режиме с помощью Azure Database Migration Service

Область применения: MongoDB

Внимание

Ознакомьтесь с этим руководством, прежде чем приступить к миграции. Azure Database Migration Service в настоящее время не поддерживает миграцию в учетную запись Виртуального ядра Azure Cosmos DB для MongoDB. Используйте расширение Azure Cosmos DB для MongoDB в Azure Data Studio, чтобы перенести рабочие нагрузки MongoDB в автономном режиме в Azure Cosmos DB для виртуальных ядер MongoDB.

Это руководство по миграции MongoDB входит в комплект документов, посвященный миграции MongoDB. Критически важные этапы миграции MongoDB — это предварительная миграция, миграция и действия после миграции, как показано ниже.

Схема этапов миграции.

Общие сведения о переносе данных по сети из MongoDB в Azure Cosmos DB с помощью DMS

Используйте Службу azure Database Migration Service для выполнения автономной однократной миграции баз данных из локального или облачного экземпляра MongoDB в Azure Cosmos DB для MongoDB.

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

  • Создайте экземпляр Azure Database Migration Service.
  • создание проекта миграции с использованием Azure Database Migration Service.
  • выполнение миграции.
  • Мониторинг миграции.

В этом руководстве вы перенесете набор данных в MongoDB, находящийся в виртуальной машине Azure. С помощью Azure Database Migration Service вы переносите набор данных в Azure Cosmos DB для MongoDB. Если у вас еще не настроен источник MongoDB, обратитесь к разделу Установка и настройка базы данных MongoDB на виртуальной машине Windows в Azure.

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

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

  • Завершите шаги, которые необходимо выполнить перед миграцией, включая оценку пропускной способности и выбор ключа секции.

  • Создайте учетную запись для Azure Cosmos DB для MongoDB.

    Примечание.

    DmS в настоящее время не поддерживается, если вы переносите учетную запись Azure Cosmos DB для MongoDB, подготовленную с бессерверным режимом.

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

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

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

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

  • Убедитесь, что правила группы безопасности сети (NSG) для виртуальной сети не блокируют следующие порты: 53, 443, 445, 9354 и 10000–20000. Дополнительные сведения см. в статье Фильтрация сетевого трафика с помощью групп безопасности сети.

  • Откройте брандмауэр Windows, чтобы предоставить Azure Database Migration Service доступ к исходному серверу MongoDB. По умолчанию это TCP-порт 27017.

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

Настройка функции повторных попыток на стороне сервера

При миграции с MongoDB на Azure Cosmos DB можно воспользоваться преимуществами возможностей по управлению ресурсами. Эти возможности позволяют полностью использовать подготовленные единицы запроса пропускной способности (ЕЗ/с). Во время миграции Azure Cosmos DB может отрегулировать определенный запрос к службе Database Migration Service, если размер этого запроса превышает число подготовленных ЕЗ/с контейнера. Такой запрос будет нужно повторить.

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

Функция повторных попыток на стороне сервера Azure Cosmos DB позволяет службе перехватывать коды ошибок регулирования и повторять попытки с уменьшенным временем кругового пути, что значительно сокращает время отклика для запроса.

Чтобы использовать повторные попытки на стороне сервера, на портале Azure Cosmos DB выберите Компоненты>Повторные попытки на стороне сервера.

Снимок экрана, на котором показано, где находится функция повторных попыток на стороне сервера.

Если эта функция отключена, выберите Включить.

Снимок экрана, на котором показано, как включить функцию повторных попыток на стороне сервера.

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

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

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

    Снимок экрана: отображение подписок на портале.

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

    Снимок экрана: отображение поставщиков ресурсов.

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

    Снимок экрана: регистрация поставщика ресурсов.

Создание экземпляра

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

    Снимок экрана: Azure Marketplace.

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

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

  3. На экране Создание службы миграции укажите имя службы, подписку и новую или существующую группу ресурсов.

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

  5. Выберите существующую виртуальную сеть или создайте новую.

    Виртуальная сеть предоставляет Azure Database Migration Service доступ к исходному экземпляру MongoDB и целевой учетной записи Azure Cosmos DB.

    Сведения о том, как создать виртуальную сеть на портале Azure, см. в разделе Создание виртуальной сети с помощью портала Azure.

  6. Выберите ценовую категорию.

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

    Снимок экрана, на котором показаны параметры конфигурации для экземпляра Azure Database Migration Service.

  7. Выберите Создать, чтобы создать службу.

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

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

  1. На портале Azure щелкните Все службы, выполните поиск по запросу "Azure Database Migration Service" и выберите Azure Database Migration Services (Службы Azure Database Migration Service).

    Снимок экрана, на котором показано, как найти все экземпляры Azure Database Migration Service.

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

  3. Выберите + Новый проект миграции.

  4. На странице Новый проект миграции укажите имя проекта и в текстовом поле Тип исходного сервера выберите MongoDB. В текстовом поле " Тип целевого сервера" выберите Azure Cosmos DB для NoSQL, а затем в поле "Выбор типа действия" выберите "Автономный перенос данных".

    Снимок экрана, на котором показаны параметры проекта.

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

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

  1. На экране Сведения об источнике задайте сведения о подключении для исходного сервера MongoDB.

    Внимание

    Azure Database Migration Service не поддерживает Azure Cosmos DB в качестве источника.

    Доступно три режима для подключения к источнику:

    • Стандартный режим, в котором принимается полное доменное имя или IP-адрес, номер порта и учетные данные для подключения.

    • Режим строки подключения, в котором принимается строка подключения MongoDB, как описано в разделе Формат URI строки подключения.

    • Данные из службы хранилища Azure, в котором принимается URL-адрес SAS контейнера BLOB-объектов. Выберите BLOB-объект содержит дампы BSON, если в контейнере BLOB-объектов есть дампы BSON, созданные средством bsondump. Не выбирайте этот параметр, если контейнер содержит файлы JSON.

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

      https://blobnameurl/container?SASKEY
      

      Эту строку подключения SAS к контейнеру BLOB-объектов можно найти в Обозревателе службы хранилища Azure. Создание SAS для нужного контейнера позволит вам получить URL-адрес в необходимом формате.

      Кроме того, учитывайте следующие сведения, соответствующие данным о типе дампа в службе хранилища Azure:

      • Для дампов BSON данные в контейнере BLOB-объектов должны иметь формат bsondump. Поместите файлы данных в папки, имена которых соответствуют содержащим их базам данных, в формате collection.bson. Укажите имена для файлов метаданных, используя формат collection.metadata.json.

      • Для дампов JSON файлы в контейнере больших двоичных объектов должны размещаться в папках с именами содержащих баз данных. В каждой папке баз данных файлы данных должны быть помещены в подпапку с именем data. Имена для этих файлов необходимо задать с использованием формата collection.json. Поместите все файлы метаданных в подпапку с именем metadata. Имена для этих файлов необходимо задать с использованием такого же формата collection.json. Файлы метаданных должны быть в том же формате, что и файлы, созданные инструментом bsondump MongoDB.

      Внимание

      Мы не рекомендуем использовать самозаверяющий сертификат на сервере MongoDB. Но если он все же применяется, подключитесь к серверу в режиме строки подключения и убедитесь, что в строке подключения используются двойные кавычки ("").

      &sslVerifyCertificate=false
      

    Также можно использовать IP-адрес в ситуациях, когда разрешение имен DNS невозможно.

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

  2. Выберите Сохранить.

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

  1. На экране Сведения о целевом объекте миграции укажите сведения о подключении для целевой учетной записи Azure Cosmos DB. Эта учетная запись является предварительно подготовленной учетной записью Azure Cosmos DB для MongoDB, в которую выполняется перенос данных MongoDB.

    Снимок экрана, на котором показаны сведения о целевом объекте.

  2. Выберите Сохранить.

Сопоставление с целевыми базами данных

  1. На экране Map to target databases (Сопоставить с целевыми базами данных) сопоставьте исходную и целевую базы данных для миграции.

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

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

    На этом этапе миграции можно подготовить пропускную способность. В Azure Cosmos DB пропускную способность можно подготовить на уровне базы данных или индивидуально для каждой коллекции. Пропускная способность измеряется в единицах запроса. Дополнительные сведения о ценах Azure Cosmos DB см. здесь.

    Снимок экрана, на котором показано сопоставление с целевыми базами данных.

  2. Выберите Сохранить.

  3. На экране Параметр коллекции разверните список коллекций и просмотрите коллекции, которые будут перенесены.

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

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

    Примечание.

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

    Вы можете также указать ключ сегмента, чтобы воспользоваться преимуществами секционирования в Azure Cosmos DB для обеспечения наилучшей масштабируемости. Просмотрите рекомендации по выбору ключа сегмента и секции.

    Снимок экрана, на котором показан выбор таблиц коллекций.

  4. Выберите Сохранить.

  5. На экране Сводка по миграции в текстовом поле Имя активности задайте имя действия миграции.

    Снимок экрана, на котором показана сводка миграции.

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

Выберите Запустить миграцию. Появится окно действия миграции, в котором будет указано состояние действия Не запущено.

Снимок экрана, на котором показано состояние действия.

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

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

Примечание.

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

Снимок экрана: состояние действия завершено.

Проверка данных в Azure Cosmos DB

После завершения миграции вы можете проверить свою учетную запись Azure Cosmos DB, чтобы убедиться, что все коллекции успешно перенесены.

Снимок экрана: проверка учетной записи Azure Cosmos DB, чтобы убедиться, что все коллекции перенесены

Оптимизация после переноса

После переноса данных, хранящихся в базе данных MongoDB, в Azure Cosmos DB для MongoDB можно подключиться к Azure Cosmos DB и управлять данными. Также можно выполнить другие действия по оптимизации после миграции. К ним могут относиться оптимизация политики индексирования, обновление уровня согласованности по умолчанию или настройка глобального распределения для учетной записи Azure Cosmos DB. Дополнительные сведения см. в разделе Оптимизация после миграции.

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

Если вы планируете ресурсы для миграции в Azure Cosmos DB,