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

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

Важно!

Ознакомьтесь с этим руководством, прежде чем приступить к миграции. Azure Database Migration Service в настоящее время не поддерживает миграцию в учетную запись Виртуального ядра 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 для MongoDB в Режим простоя в сети.

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

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

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

Примечание.

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

Важно!

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

Совет

В Службе azure Database Migration Service можно перенести базы данных в автономном режиме или во время их работы в сети. При автономной миграции время простоя приложения начинается при запуске миграции. Чтобы ограничить время простоя, необходимое для перехода к новой среде после миграции, используйте миграцию через Интернет . Рекомендуется протестировать автономную миграцию, чтобы определить допустимо ли время простоя. Если ожидаемое время простоя недопустимо, выполните миграцию по сети.

В этой статье описывается миграция из MongoDB в Azure Cosmos DB для MongoDB. Сведения об автономной миграции см. в статье "Миграция MongoDB в Azure Cosmos DB для MongoDB в автономном режиме с помощью DMS".

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

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

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

  • Создайте учетную запись Azure Cosmos DB для MongoDB и убедитесь, что SSR (повторная попытка на стороне сервера) включена.

    Примечание.

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

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

    Примечание.

    Если вы используете 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 обращаться к исходным базам данных для выполнения миграции.

Настройка повторных попыток в Azure Cosmos DB на стороне сервера для эффективной миграции

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

Функцию повторных попыток на стороне сервера можно найти в колонке Функции на портале Azure Cosmos DB.

Screenshot of MongoDB Server-Side Retry feature.

Если функция отключена, рекомендуется включить ее, как показано ниже.

Screenshot of MongoDB Server-Side Retry enable.

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

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

    Azure Marketplace

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

    Create Azure Database Migration Service instance

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

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

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

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

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

  6. Выберите номер SKU ценовой категории "Премиум".

    Примечание.

    Миграция по сети поддерживается, только если используется уровень "Премиум". Дополнительные сведения о ценовых категориях и затратах см. на странице с описанием цен.

    Configure Azure Database Migration Service instance settings

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

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

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

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

    Locate all instances of Azure Database Migration Service

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

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

    Use the Search pane in the Azure portal

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

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

    Create Database Migration Service project

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

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

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

    Важно!

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

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

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

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

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

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

      https://blobnameurl/container?SASKEY
      

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

      • Для дампов BSON данные в контейнере больших двоичных объектов должны быть в формате bsondump так, чтобы файлы данных помещались в папках с именами содержащих баз данных в формате "коллекция.bson". Файлы метаданных (если таковые имеются) должны быть названы в формате коллекция.metadata.json.

      • Для дампов JSON файлы в контейнере больших двоичных объектов должны размещаться в папках с именами содержащих баз данных. В каждой папке баз данных файлы данных должны быть помещены в подпапку с именем "data" и названы в формате коллекция.json. Файлы метаданных (если таковые имеются) должны быть помещены в подпапку с именем "metadata" и названы в том же формате: коллекция.json. Файлы метаданных должны быть в том же формате, что и файлы, созданные инструментом bsondump MongoDB.

    Важно!

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

    &sslVerifyCertificate=false
    

    Если разрешение DNS-имен невозможно, можно использовать IP-адрес.

    Specify source details

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

    Примечание.

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

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

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

    Specify target details

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

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

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

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

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

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

    Map to target databases

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

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

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

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

    Примечание.

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

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

    Select collections tables

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

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

    Migration summary

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

  • Выберите Запустить миграцию.

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

    Activity status

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

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

    Примечание.

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

    Activity status replaying

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

  1. Внесите изменения в исходную базу данных MongoDB.

  2. Подключение в Azure Cosmos DB, чтобы проверить, реплика ли данные с исходного сервера MongoDB.

    Screenshot that shows where you can verify that the data was replicated.

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

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

    Это действие приведет к окончанию повторного воспроизведения всех ожидающих изменений и завершению миграции.

    Screenshot that shows the Finish menu option.

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

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

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

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