Миграция MongoDB в Azure DocumentDB в режиме онлайн с помощью расширения миграции Azure DocumentDB (публичная предварительная версия)

В этом руководстве описано, как использовать расширение миграции Azure DocumentDB в Visual Studio Code для создания заданий миграции из локального или облачного экземпляра MongoDB в Azure DocumentDB. Это расширение предоставляет удобный для разработчика интерфейс для выполнения миграции без прерываний работы службы. Расширение устраняет потребность в дополнительной инфраструктуре и обеспечивает безопасное подключение, нулевое использование и детализированный контроль над переносом баз данных и коллекций.

Основное внимание в этой статье уделяется использованию интегрированного рабочего процесса расширения для упрощения шагов миграции непосредственно в Visual Studio Code. Этот подход идеально подходит для сценариев, в которых требуется упрощенный управляемый интерфейс с минимальной сложностью и максимальной надежностью.

Предпосылки

  • Существующий кластер Azure DocumentDB

Перед началом миграции подготовьте учетную запись Azure DocumentDB и существующий экземпляр MongoDB для миграции.

Экземпляр MongoDB (источник)

  • Выполните оценку перед миграцией, чтобы определить, существуют ли несовместимости и предупреждения между исходным экземпляром и целевым аккаунтом.
  • Добавьте пользователя с разрешениями readAnyDatabase и clusterMonitor, если такого еще не существует. Вы используете эти учетные данные при создании заданий миграции в расширении.

Azure DocumentDB (целевой объект)

  • Соберите учетные данные для учетной записи Azure DocumentDB .
  • Убедитесь, что у пользователя есть createCollection, dropCollectionи createIndexinsertlistCollections разрешения.

Минимальные требуемые разрешения

Используйте следующие минимальные роли для создания и запуска заданий миграции.

Минимальная роль Scope Применяется к режиму подключения Purpose
Reader Subscription Общедоступная и частная Перечислите подписки и группы ресурсов. Требуется для каждого задания миграции.
Участник с правами доступа в Azure Database Migration Service Группа ресурсов Общедоступная и частная Создание Azure Database Migration Service (DMS). Вам не нужно создавать новую DMS для каждой миграции. Один DMS в каждом регионе достаточно.
Contributor Subscription Общедоступная и частная Зарегистрируйте DMS в подписке. Это однократное действие и может быть делегировано другому пользователю.
Администратор доступа пользователей Виртуальная сеть Только для личного пользования Назначьте роль участника сети субъекту объекта DMS. Это однократное действие для каждой виртуальной сети и может быть делегировано другому пользователю.
Contributor Azure DocumentDB Общедоступная и частная Активируйте задание миграции.

Сведения о регистрации поставщика см. в разделе Register Microsoft.DataMigration resource provider в вашей подписке.

Important

Проверка подлинности идентификатора Microsoft Entra в настоящее время не поддерживается в заданиях миграции. Используйте встроенную аутентификацию DocumentDB.

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

Рекомендации по планированию размера миграции, скорости и переключению см. в Лучшие практики миграции.

Подключение к источнику

  1. Откройте расширение DocumentDB для VS Code .
  2. Добавьте сервер MongoDB, который необходимо перенести в список подключений к базе данных документов .
  3. Выберите "Добавить новое подключение".
  4. На панели навигации выберите Строку подключения.
  5. Вставьте строку подключения (строка подключения): mongodb://<YOUR_USERNAME>:<YOUR_PASSWORD>@localhost:10260/?tls=true&tlsAllowInvalidCertificates=true&authMechanism=SCRAM-SHA-256
  6. В параметрах "Подключения DocumentDB" выберите подключение и разверните его для подключения.

Вызов расширения миграции

Вы можете вызвать расширение миграции из подключений DocumentDB.

  1. Щелкните правой кнопкой мыши на развернутом (подключенном) соединении.

  2. Выберите "Миграция данных " в контекстном меню.

    Скриншот контекстного меню в Visual Studio Code.

  3. В палитре команд выберите Миграция в Azure DocumentDB. Скриншот палитры команд, перечисляющей средства миграции в Visual Studio Code.

  4. Затем выберите Перенос в Azure DocumentDB. Скриншот командной палитры с параметром миграции в Visual Studio Code.

  5. Мастер миграции поможет вам пройти процесс.

Создание задания миграции

Задание миграции используется для переноса группы коллекций из источника в целевой Azure DocumentDB. Мастер создания задачи миграции состоит из шести шагов.

Шаг 1. Создание задания

На этом шаге вы укажите основные сведения о задании.

  • Имя задания: укажите понятное имя для идентификации задания миграции.

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

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

    Important

    Чтобы обеспечить успешную миграцию через Интернет из MongoDB, На исходном сервере MongoDB необходимо включить ChangeStream. Без ChangeStream любые изменения, внесенные в данные после первоначальной миграции, не записываются. Поэтому используйте режим миграции в сети, только если На исходном сервере MongoDB включена функция ChangeStream.

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

    • Используйте общедоступные серверы, когда исходные и целевые серверы доступны через Интернет через общедоступные IP-адреса. Она обеспечивает поддержку служб, требующих внешних специальных возможностей.
    • Используйте private , если исходные или целевые серверы доступны исключительно через частные IP-адреса в виртуальной сети. Это повышает безопасность, устраняя воздействие на общедоступный Интернет.

Для продолжения выберите Далее.

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

Шаг 2. Выбор целевого объекта

На этом шаге выберите существующую учетную запись Azure DocumentDB и укажите ее строку подключения.

  1. Выберите подписку, группу ресурсов и учетную запись Azure DocumentDB из раскрывающихся списков.

  2. Укажите строку подключения к учетной записи Azure DocumentDB.

  3. Убедитесь, что IP-адрес, указанный на экране, разрешен в брандмауэре Azure DocumentDB.

  4. Для продолжения выберите Далее.

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

Шаг 3. Выбор службы миграции базы данных (DMS)

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

Important

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

Для продолжения выберите Далее.

Скриншот шага выбора службы миграции баз данных в мастере.

Шаг 4. Настройка подключения

Этот экран зависит от режима подключения, выбранного на шаге 1.

Общедоступное подключение

При общедоступном подключении задание миграции подключается к вашему источнику и целевому объекту через публичный интернет. Чтобы включить обмен данными, необходимо обновить исходные и целевые брандмауэры. Чтобы включить обмен данными с серверов DMS, добавьте IP-адреса, перечисленные на экране, в исходные и целевые брандмауэры. Дополнительные сведения о сетевой модели см. в разделе "Общедоступное подключение". Руководство по настройке брандмауэра см. в разделе configure Azure DocumentDB cluster firewall.

Этап конфигурации общедоступного подключения в мастере: снимок экрана.

Частное подключение

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

  1. Это средство позволяет выполнять пиринг с двумя виртуальными сетями, одним из них для источника и другого для целевого объекта. В зависимости от конфигурации сети выберите подписку, группу ресурсов и виртуальные сети из раскрывающихся списков.

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

  3. Запустите скрипты PowerShell, предоставленные на экране, чтобы включить интеграцию виртуальной сети.

  4. Для продолжения выберите Далее.

Снимок экрана этапа настройки частного подключения в мастере.

Шаг 5. Выбор коллекций

На этом этапе вы выбираете коллекции, которые будут включены в миграционную задачу. Выберите из списка коллекций, используя указанные параметры поиска. Коллекции, которые уже существуют в целевой системе, автоматически помечаются Да в столбце Существует в Целевой Системе.

Tip

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

Для продолжения выберите Далее.

Шаг выбора коллекций в мастере: снимок экрана.

Шаг 6. Подтверждение и запуск

Просмотрите сведения о задании миграции перед нажатием кнопки "Начать миграцию". Если необходимо обновить сведения, нажмите кнопку "Изменить сведения ".

После успешного создания задания миграции вы автоматически перенаправляетесь на страницу "Просмотр существующих заданий "

Tip

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

Отслеживание существующих заданий миграции

Перейдите на вкладку "Просмотр существующих заданий ", чтобы отслеживать состояние миграции инициализированных заданий. Задачи перечислены на основе выбранной DMS. Нажмите кнопку "Изменить DMS" , чтобы изменить выбранный вариант.

Состояние автоматически обновляется с частыми интервалами. Автономные задачи автоматически завершаются после копирования выбранных снимков коллекции в цель. Тем не менее, миграции в Интернете необходимо сократить вручную.

Снимок экрана: экран просмотра существующих заданий.

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

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

Мониторинг миграции через Интернет

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

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

  1. Кнопка "Переключение " включена после завершения начальной загрузки данных для всех коллекций. На этом этапе задание находится на этапе репликации, непрерывно копируя обновления из исходного экземпляра в целевой экземпляр, чтобы он соответствовал последним изменениям.

  2. Когда вы будете готовы выполнить перенос данных, остановите все входящие транзакции в исходных коллекциях, которые мигрируются.

  3. Разрыв репликации показывает интервал времени между последним обновлением и текущим временем.

  4. Отслеживайте изменения репликации в таблице и подождите, пока не стабилизируется метрика воспроизведения репликации . Стабильная метрика воспроизведения изменений репликации указывает, что все обновления из источника успешно копируются в целевой объект.

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

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

Замечание

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

Снимок экрана, показывающий состояние коллекций для миграции по сети

Сценарии миграции

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

Поддерживаемые исходные среды

В следующей таблице перечислены поддерживаемые источники миграции:

Исходная среда Description
в рамках Azure Экземпляры MongoDB, работающие на Виртуальные машины Azure или других Azure размещенных службах
On-premises Серверы MongoDB, работающие в локальном центре обработки данных или частной инфраструктуре
Другие поставщики облачных служб Экземпляры MongoDB, размещенные на других облачных платформах

Общедоступное подключение

В режиме общедоступного подключения Azure Database Migration Service (DMS) подключается к исходным и целевым серверам через общедоступный Интернет. DMS предоставляет статические IP-адреса, которые добавляются в списки разрешений брандмауэра как на исходных, так и на целевых серверах. DMS использует общую общедоступную виртуальную сеть для всех миграций в определенном регионе. Хотя эта виртуальная сеть общая для клиентов, каждое задание миграции выполняется на собственном изолированном частном рабочем узле, чтобы обеспечить изоляцию на уровне задания.

Используйте общедоступное подключение, если:

  • Исходные и целевые серверы доступны через общедоступные IP-адреса.
  • Политики безопасности вашей организации разрешают подключения через общедоступный Интернет.
  • Вам нужна более простая настройка без настройки виртуальной сети.

Схема, демонстрирующая сетевую архитектуру для общедоступного подключения.

Чтобы включить общедоступное подключение, выполните приведенные действия.

  1. В мастере миграции выберите "Общедоступный " в качестве режима подключения.

  2. Обратите внимание на статические IP-адреса, отображаемые в мастере.

  3. Добавьте эти IP-адреса в список разрешений брандмауэра на исходном сервере MongoDB.

  4. Добавьте эти IP-адреса в брандмауэр Azure DocumentDB.

Частное подключение

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

Расширение поддерживает до двух виртуальных сетей:

  • Исходная виртуальная сеть: виртуальная сеть, в которой доступен исходный сервер MongoDB.
  • Целевая виртуальная сеть: виртуальная сеть, в которой доступен кластер Azure DocumentDB.

Используйте частное подключение, если:

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

От других поставщиков облачных служб или локальной среды

Используйте предпочитаемые средства VPN для настройки сетевого подключения между Azure и исходной средой в другом облаке или локальной среде.

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

Из частной конечной точки в Azure

Настройте частные конечные точки для исходных и целевых виртуальных сетей.

Diagram, показывающий сетевую архитектуру для частного подключения в Azure

Чтобы включить частное подключение, выполните приведенные действия.

  1. В мастере миграции выберите "Приватный " в качестве режима подключения.

  2. Выберите подписку, группу ресурсов и виртуальную сеть для исходной среды.

  3. Выберите подписку, группу ресурсов и виртуальную сеть для целевой среды.

  4. В разделе конфигурации DMS выберите диапазон CIDR, который не конфликтует с существующими виртуальными сетями.

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

Important

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

Зарегистрируйте поставщика ресурсов Microsoft.DataMigration в вашей подписке

Чтобы убедиться, что поставщик ресурсов Microsoft.DataMigration зарегистрирован в вашей подписке, вы можете выполнить следующие действия.

Azure portal

  1. Перейдите на портал Azure и перейдите к подписке.

  2. В меню слева выберите поставщики ресурсов в разделе "Параметры".

  3. Найдите Microsoft.DataMigration в поле поиска в верхней части.

  4. Если он не зарегистрирован, выберите его и нажмите кнопку "Зарегистрировать ".

Azure CLI

  1. Откройте Azure Cloud Shell или локальный терминал.

  2. Выполните указанную ниже команду для регистрации поставщика ресурсов.

    az provider register --namespace Microsoft.DataMigration
    

PowerShell

  1. Откройте Azure Cloud Shell или локальную среду PowerShell.

  2. Выполните указанную ниже команду для регистрации поставщика ресурсов.

    Register-AzResourceProvider -ProviderNamespace "Microsoft.DataMigration"
    

FAQ

Почему представления отсутствуют на шаге экрана выбора коллекции, когда Azure DocumentDB поддерживает представления?

Azure DocumentDB поддерживает создание новых представлений. Однако расширение миграции не поддерживает перенос существующих представлений.

После завершения миграции вы всегда можете повторно создать представления.

Какие коллекции и базы данных пропускаются при миграции из MongoDB в Azure DocumentDB?

Следующие базы данных и коллекции считаются внутренними для MongoDB:

Категория Description
Базы данных администратор, локальный, конфигурация системы
Коллекции Любая коллекция с префиксом system.

Выполняются ли задания миграции локально на моем компьютере?

Мастер миграции в VS Code требует сетевого подключения от локального компьютера к исходным и целевым средам. Это подключение используется для перечисления баз данных и коллекций и отправки задания миграции. После отправки задания можно закрыть VS Code или отключиться от исходных и целевых сред.

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

Можно ли переименовать базы данных и коллекции во время миграции?

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

Как настроить брандмауэры исходного сервера, чтобы избежать проблем с подключением?

Требуемая конфигурация сети зависит от выбранного режима подключения:

  • Общедоступный режим: Чтобы включить связь, необходимо разрешить IP-адреса, отображаемые в мастере, как в исходном, так и в целевом брандмауэрах.
  • Закрытый режим: Необходимо включить интеграцию виртуальной сети , чтобы серверы DMS могли безопасно взаимодействовать с исходными и целевыми конечными точками в виртуальной сети.

Также см. сведения о подключении VS Code

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

В одну миграцию можно включить неограниченное количество коллекций.

Сколько заданий миграции можно выполнять одновременно?

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

Какой тип журналов создает расширение?

Расширение записывает ошибки, предупреждения и другие журналы диагностики в каталоге журналов по умолчанию:

  • Виндоус - C:\Users\<username>\.dmamongo\logs\
  • Линукс - ~/.dmamongo/logs
  • Macos - /Users/<username>/.dmamongo/logs

Дальнейшие действия