Руководство. Перенос 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 — это предварительная миграция, миграция и действия после миграции, как показано ниже.

Diagram of migration steps.

Общие сведения о переносе данных по сети из 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 выберите Компоненты>Повторные попытки на стороне сервера.

Screenshot that shows where to find the Server Side Retry feature.

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

Screenshot that shows how to enable Server Side Retry.

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

Прежде чем создать свой первый экземпляр 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

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

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

    Screenshot that shows Azure Marketplace.

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

    Screenshot that shows how to create an instance of Azure Database Migration Service.

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

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

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

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

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

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

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

    Screenshot that shows configuration settings for the instance of Azure Database Migration Service.

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

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

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

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

    Screenshot that shows how to locate all instances of Azure Database Migration Service.

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

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

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

    Screenshot that shows project options.

  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 невозможно.

    Screenshot that shows specifying source details.

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

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

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

    Screenshot that shows specifying target details.

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

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

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

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

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

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

    Screenshot that shows mapping to target databases.

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

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

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

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

    Примечание.

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

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

    Screenshot that shows selecting collections tables.

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

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

    Screenshot that shows the nigration summary.

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

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

Screenshot that shows the activity status.

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

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

Примечание.

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

Screnshot that shows the activity status completed.

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

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

Screenshot that shows where to check your Azure Cosmos DB account to verify that all the collections were migrated successfully.

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

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

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

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

Инструкции по миграции для других сценариев см. в Руководстве по миграции базы данных Azure.