Руководство по миграции MongoDB в Azure Cosmos DB для MongoDB в Интернете с помощью Azure Database Migration Service
Область применения: MongoDB
Внимание
Миграции в Azure Cosmos DB для виртуальных ядер MongoDB можно выполнить с помощью расширения миграции MongoDB для Azure Data Studio. Это расширение использует Azure Database Migration Service в фоновом режиме. Обратите внимание, что миграция в Azure Cosmos DB для виртуального ядра MongoDB не может выполняться с помощью Database Migration Service в портал Azure.
Это руководство по миграции MongoDB входит в комплект документов, посвященный миграции MongoDB. Критически важные этапы миграции MongoDB — это предварительная миграция, миграция и после миграции.
Общие сведения о переносе данных по сети из 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 в автономном режиме с помощью Azure Database Migration Service.
Необходимые компоненты
Для работы с этим руководством вам потребуется следующее:
Завершите шаги, которые необходимо выполнить перед миграцией, включая оценку пропускной способности, а также выбор ключа секции и политики индексирования.
Создайте учетную запись Azure Cosmos DB для MongoDB и убедитесь, что включена функция предотвращения ошибок ограничения скорости для операций Azure Cosmos DB для MongoDB.
Примечание.
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.
И если он отключен, рекомендуется включить его, как показано ниже.
Регистрация поставщика ресурсов
Прежде чем создать свой первый экземпляр Database Migration Service, зарегистрируйте поставщик ресурсов Microsoft.DataMigration.
Войдите на портал Azure. Выполните поиск по запросу Подписки и выберите этот пункт.
Выберите подписку, в которой нужно создать экземпляр Azure Database Migration Service, а затем щелкните Поставщики ресурсов.
В поле поиска введите migration, а затем щелкните элемент Зарегистрировать рядом с Microsoft.DataMigration.
Создание экземпляра
В портал Azure выберите +Создать ресурс, найдите Azure Database Migration Service и выберите Azure Database Migration Service в раскрывающемся списке.
На экране Azure Database Migration Service выберите Создать.
На экране Создание службы миграции укажите имя службы, подписку и новую или существующую группу ресурсов.
Выберите расположение, в котором нужно создать экземпляр Azure Database Migration Service.
Выберите существующую виртуальную сеть или создайте новую.
Виртуальная сеть предоставляет Azure Database Migration Service доступ к исходному экземпляру MongoDB и целевой учетной записи Azure Cosmos DB.
См. статью Краткое руководство. Создание виртуальной сети с помощью портала Azure.
Выберите номер SKU ценовой категории "Премиум".
Примечание.
Миграция по сети поддерживается, только если используется уровень "Премиум". Дополнительные сведения о ценовых категориях и затратах см. на странице с описанием цен.
Выберите Создать, чтобы создать службу.
Создание проекта миграции
После создания службы найдите ее на портале Azure, откройте и создайте проект миграции.
На портале Azure щелкните Все службы, выполните поиск по запросу "Azure Database Migration Service" и выберите Azure Database Migration Services (Службы Azure Database Migration Service).
На экране Службы миграции баз данных Azure найдите и выберите имя созданного экземпляра Azure Database Migration Service.
Вы можете также обнаружить экземпляр службы Azure Database Migration Service в области поиска на портале Azure.
Выберите + Новый проект миграции.
На экране нового проекта миграции укажите имя проекта, в текстовом поле "Исходный сервер" выберите MongoDB, в текстовом поле "Тип целевого сервера" выберите Azure Cosmos DB для MongoDB, а затем в поле "Выбор типа действия" выберите "Онлайн" миграция данных [предварительная версия].
Выберите Сохранить и Создать и выполнить действие, чтобы создать проект и выполнить действие миграции.
Укажите сведения об источнике.
На экране Сведения об источнике задайте сведения о подключении для исходного сервера 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-адрес.
Выберите Сохранить.
Адрес исходного сервера должен быть адресом основного сервера, если источником является набор реплик, и маршрутизатором, если источником является сегментированный кластер MongoDB. Для сегментированного кластера MongoDB Служба Azure Database Migration Service должна иметь возможность подключаться к отдельным сегментам в кластере, что может потребовать открытия брандмауэра на дополнительных компьютерах.
Укажите сведения о целевом объекте.
На экране сведений о целевом объекте миграции укажите сведения о подключении для целевой учетной записи Azure Cosmos DB, которая является предварительно подготовленной Azure Cosmos DB для учетной записи MongoDB, в которую выполняется перенос данных MongoDB.
Выберите Сохранить.
Сопоставление с целевыми базами данных
На экране Map to target databases (Сопоставить с целевыми базами данных) сопоставьте исходную и целевую базы данных для миграции.
Если в целевой базе данных содержится база данных с тем же именем, что у исходной базы данных, Azure Database Migration Service по умолчанию выберет целевую базу данных.
Если строка Создать отображается рядом с именем базы данных, это значит, что Azure Database Migration Service не удалось найти целевую базу данных, и служба автоматически создаст ее.
На этом этапе переноса укажите пропускную способность в ЕЗ, если для базы данных необходимо использовать общую пропускную способность. В Azure Cosmos DB можно подготовить пропускную способность на уровне базы данных или отдельно для каждой коллекции. Пропускная способность измеряется в единицах запросов в Azure Cosmos DB (ЕЗ). Дополнительные сведения о ценах Azure Cosmos DB см. здесь.
Выберите Сохранить.
На экране Параметр коллекции разверните список коллекций и просмотрите коллекции, которые будут перенесены.
Azure Database Migration Service автоматически выбирает все коллекции, которые существуют в исходном экземпляре MongoDB и не существуют в целевой учетной записи Azure Cosmos DB. Чтобы повторно перенести коллекции, уже содержащие данные, необходимо явным образом выбрать их на этом экране.
Вы можете указать количество ЕЗ, которое необходимо использовать коллекциям. Обычно достаточно использовать значение в диапазоне от 500 (не менее 1000 для сегментированных коллекций) до 4000. Azure Database Migration Service предлагает интеллектуальные значения по умолчанию с учетом размера коллекции.
При необходимости выполните перенос базы данных и коллекции в параллельном режиме с помощью нескольких экземпляров Azure Database Migration Service, чтобы ускорить процесс.
Вы можете также указать ключ сегмента, чтобы воспользоваться преимуществами секционирования в Azure Cosmos DB для обеспечения наилучшей масштабируемости. Обязательно просмотрите рекомендации по выбору ключа сегмента и секции. Если у вас нет ключа секции, вы всегда можете использовать _id в качестве ключа сегментов для повышения пропускной способности.
Выберите Сохранить.
На экране Сводка по миграции в текстовом поле Имя активности задайте имя действия миграции.
Выполните миграцию.
Выберите Запустить миграцию.
Появится окно действия миграции, в котором будет указано состояние действия.
Отслеживайте ход миграции.
На экране действия миграции нажимайте Обновить, чтобы периодически обновлять содержимое экрана, пока в поле Состояние не будет указано значение Идет повторное воспроизведение.
Примечание.
Вы можете выбрать действие, чтобы получить сведения о метриках миграции на уровне базы данных и на уровне коллекции.
Проверка данных в Azure Cosmos DB
Внесите изменения в исходную базу данных MongoDB.
Подключитесь к Azure Cosmos DB, чтобы проверить, реплицируются ли данные с исходного сервера MongoDB.
Выполнение переноса
После того как все документы из источника доступны в целевом объекте Azure Cosmos DB, нажмите кнопку Готово из контекстного меню действия миграции, чтобы завершить миграцию.
Это действие приведет к окончанию повторного воспроизведения всех ожидающих изменений и завершению миграции.
Оптимизация после переноса
После переноса данных, хранящихся в базе данных MongoDB, в Azure Cosmos DB для MongoDB можно подключиться к Azure Cosmos DB и управлять данными. После переноса можно также выполнить другие действия, включая оптимизацию политики индексирования, обновление уровня согласованности по умолчанию и настройку глобального распределения для своей учетной записи Azure Cosmos DB. См. подробнее об оптимизации после переноса.
Дополнительные ресурсы
Если вы планируете ресурсы для миграции в Azure Cosmos DB,
- Если вам известно только количество виртуальных ядер и серверов в существующем кластере баз данных, см. сведения об оценке единиц запросов на основе виртуальных ядер и серверов.
- Если вам известна стандартная частота запросов для текущей рабочей нагрузки базы данных, ознакомьтесь со статьей о расчете единиц запросов с помощью планировщика ресурсов Azure Cosmos DB