Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Эта статья поможет вам спланировать и выполнить миграцию из MongoDB в Azure DocumentDB. В ней рассматриваются доступные средства миграции, ключевые этапы миграции и рекомендации по снижению риска и минимизации простоя.
Независимо от того, выполняется ли миграция с локального сервера MongoDB, облачной виртуальной машины или управляемой службы MongoDB, представленные в этой статье параметры миграции, советы и лучшие практики применимы.
Основные этапы миграции
Успешная миграция следует этим отдельным этапам. Каждый этап имеет определенные цели и критерии успешности.
1. Оценка
Выполните автоматическое сканирование вашей исходной базы данных MongoDB с помощью Azure DocumentDB Migration extension для выявления неподдерживаемых функций, команд, запросов и типов индексов. Оценка также содержит общие сведения о версии MongoDB, лицензии, типе экземпляра и метрике базы данных и коллекции. Используйте эти результаты для планирования изменений схемы и определения необходимого рефакторинга перед миграцией.
Tip
Мы рекомендуем подробно просмотреть поддерживаемые функции и синтаксис языка запросов MongoDB (MQL) и выполнить проверку концепции до фактической миграции.
2. Подготовка
Анализируйте отчет об оценке и измеряйте показатель TPS (транзакции в секунду) источника. Запустите пробную миграцию для репрезентативных данных, чтобы установить целевой уровень вычислений, уровень хранилища и количество сегментов. Проводите тесты производительности, чтобы обеспечить соответствие целевой конфигурации вашим требованиям.
3. Уточнение
Подготовьте целевые коллекции с соответствующими ключами сегментов и индексами, соответствующими шаблонам рабочих запросов. При использовании нескольких сегментов решите, как распределять коллекции между сегментами для балансировки нагрузки и минимизации операций между сегментами.
4. Миграция
Запустите задание миграции для перемещения данных в автономном или интерактивном режиме:
- Оффлайн миграция: создает моментальный снимок источника в начале и выполняет массовое копирование в целевую систему. Все данные, добавленные, обновленные или удаленные в источнике после создания моментального снимка, не копируются. Требуемое время простоя зависит от того, сколько времени занимает массовое копирование.
- Миграция по сети: выполняет ту же массовую копию, что и в автономном режиме, но и отслеживает поток изменений во время процесса. Изменения, внесенные во время миграции, реплицируются в целевой объект, поэтому требуется минимальное время простоя приложения. Требуется поток изменений и достаточно большой журнал операций в источнике.
Tip
Для миграции через Интернет убедитесь, что поток изменений включен, и оплог имеет соответствующий размер в исходном MongoDB, чтобы записать все изменения во время миграции.
Доступные средства см. в разделе "Средства миграции".
5. Проверка
Убедитесь, что все данные скопированы, включая последние обновления. Сравните количество документов, выполните проверку на основе образца и убедитесь, что индексы и структуры данных соответствуют ожиданиям в целевом объекте. Используйте автоматизированные скрипты, чтобы сделать проверку повторяемой и согласованной.
6. Переключение
Перенесите трафик чтения на целевую систему и убедитесь в отсутствии функциональных проблем или проблем с производительностью. После успешной проверки чтения переместите трафик записи в целевой объект. Внимательно следите за окном переключения на наличие аномалий.
Средства миграции
Средства, описанные в этой статье, помогают перенести рабочие нагрузки MongoDB из следующих источников:
- Виртуальная машина MongoDB
- Атлас MongoDB
- AWS DocumentDB
плагин для миграции Azure DocumentDB
Создавайте и управляйте заданиями миграции в Visual Studio Code с помощью Azure DocumentDB Migration Extension (общедоступная предварительная версия) — это решение, предназначенное для простоты, безопасности и нулевого простоя.
Это средство предоставляет четкие пошаговые рекомендации по переносу рабочих нагрузок без прерываний работы служб. Вы можете:
- Выбор определенных баз данных и коллекций для миграции
- Выполнение всех шагов в знакомом интерфейсе VS Code
- Обеспечение безопасного подключения на протяжении всего процесса
- Наслаждайтесь нулевой стоимостью использования расширения
С помощью расширения миграции Azure DocumentDB вы можете упростить процесс миграции при сохранении контроля и безопасности без дополнительной инфраструктуры или сложности.
Веб-приложение (онлайн)
Оптимизируйте миграцию в Azure DocumentDB с помощью MongoMigrationwebBasedUtility , предназначенной для повышения эффективности, надежности и удобства использования. Репозиторий предлагает подробные пошаговые инструкции по переносу рабочих нагрузок. Это средство обеспечивает простой интерфейс для миграции данных в сети и в автономном режиме. Процесс является понятным для пользователя, требуя предоставления только исходных и целевых сведений. Это позволяет легко перенести коллекции MongoDB, сохраняя контроль, безопасность и масштабируемость, разблокируя полный потенциал Azure DocumentDB.
К ключевым функциям относятся:
- Поддерживает частное развертывание в виртуальной сети для повышения безопасности
- Автоматическое возобновление работы при потере подключения или временных ошибках
- Пользовательский интерфейс
- Доступ к исходному коду C# на GitHub
Это средство поддерживает гибкие варианты развертывания и работает независимо без зависимостей от других ресурсов Azure. Кроме того, она предлагает масштабируемую производительность с настраиваемыми тарифными планами веб-приложения Azure.
Средства Native MongoDB (автономные)
Вы также можете использовать собственные средства MongoDB, такие как mongodump/mongorestore, mongoexport/mongoimport для переноса наборов данных в автономном режиме (без репликации динамических изменений) в предложение Azure DocumentDB.
| Scenario | Встроенное средство MongoDB |
|---|---|
| Перемещение поднабора данных базы (на основе JSON- или CSV-файла) | mongoexport/mongoimport |
| Перемещение всей базы данных (на основе BSON) | mongodump/mongorestore |
-
mongoexport/mongoimport — это лучшая пара средств миграции для переноса подмножества вашей базы данных MongoDB.
- mongoexport экспортирует существующие данные в JSON- или CSV-файл в понятном для человека формате. mongoexport принимает аргумент, указывающий подмножество существующих данных для экспорта.
- mongoimport открывает JSON-файл или CSV-файл и вставляет содержимое в целевой экземпляр базы данных (Azure DocumentDB в данном случае.).
- формат JSON и CSV не является компактным; вы можете понести дополнительные расходы на сеть, если mongoimport отправляет данные в Azure DocumentDB.
-
mongodump/mongorestore — это лучшая пара средств миграции для переноса всей базы данных MongoDB. Компактный формат BSON упрощает использование сетевых ресурсов по мере вставки данных в Azure DocumentDB.
- mongodump экспортирует существующие данные в виде BSON-файла.
- mongorestore импортирует дамп файла BSON в Azure DocumentDB.
Замечание
Встроенные инструменты MongoDB могут перемещать данные только так быстро, как позволяет оборудование узла.
Рекомендации по миграции
Используйте эти рекомендации, чтобы снизить риск, оценить емкость более точно, повысить скорость миграции и безопасно выполнить переключение.
Сокращение сбоев
Используйте пароли, закодированные по URL-адресу, в строках подключения. Специальные символы, такие как
@,#и:могут прерывать синтаксический анализ, если они не закодированы. Кодировка URL-адресов помогает избежать сбоев подключения во время оценки и миграции.Выполните предмиграционную оценку перед миграцией. Оценка помогает выявлять неподдерживаемые функции, пробелы совместимости и потенциальные блокировщики. Устраните обнаруженные проблемы перед миграцией, чтобы уменьшить количество работы во время перехода.
Отработайте миграцию и переключение перед продакшном. Выполните одну или несколько репетиционных миграций в непроизводственных средах. Практика повышает точность времени, готовность команды и уверенность во время сокращения рабочей среды.
Точно определить размеры инфраструктуры
Выполните пробную миграцию на небольшой, но репрезентативный набор данных. Используйте пробную версию для записи реалистичной пропускной способности, задержки и потребления ресурсов. Репрезентативный пример дает более лучшие оценки, чем искусственные тестовые данные.
Экстраполировать результаты пробной версии для оценки уровня вычислений, уровня хранилища и количества сегментов. Используйте метрики наблюдений испытаний для составления окончательных требований к размеру на основе объема полного набора данных. Вернитесь к оценке, если распределение рабочих данных отличается от примера.
Используйте репрезентативное количество документов, размер и структуру с параметрами, подобными используемым в производственной среде. Сопоставляйте параметры индексирования рабочей среды и сегментирования во время пробной версии, чтобы избежать недооценки затрат или длительности миграции. Непроизводственные настройки могут привести к вводящим в заблуждение результатам.
Оцените целевое хранилище из результатов пробной версии вместо того, чтобы предположить, что исходные и целевые размеры равны. Объёмы данных исходного и целевого хранилища могут отличаться из-за различий в определениях индекса и структуре данных. Используйте пробные результаты для планирования хранения с безопасным буфером.
Оптимизация скорости миграции
Перемещайте в пределах одного и того же региона, где это возможно. Сохранение источника и целевого объекта в одном регионе снижает задержку в сети и повышает производительность передачи данных. Она также может снизить затраты на передачу данных между регионами.
Во время миграции увеличьте масштаб, а затем уменьшите его после переключения. Например, можно временно масштабировать целевой кластер до M200, чтобы увеличить пропускную способность миграции. После миграции уменьшите масштаб до подходящего уровня в поддерживаемом диапазоне для стабильных рабочих нагрузок.
Выберите диски с более высоким числом операций ввода-вывода в секунду для ускорения записи. Более высокий объем операций ввода-вывода в секунду может значительно повысить производительность миграции с высокой нагрузкой на запись. Так как размер диска обычно не может быть уменьшен позже, тщательно выберите размер диска во время планирования.
Тщательно планируйте переход, так как возврата не предусмотрено.
Планирование простоя во время окна низкого трафика. Требуемое время простоя зависит от того, сколько времени выполняется проверка после завершения миграции. При низкой загруженности минимизируется влияние на бизнес.
Остановите все операции записи на источник непосредственно перед переключением системы. Этот шаг предотвращает расхождение между источником и целевым объектом в последнюю минуту. Убедитесь, что операция записи полностью приостановлена перед завершением переключения.
Проверьте перенесенные данные перед перемещением записей. Сравните счетчики документов, а затем выполните сравнение случайных примеров документов (например, хэш-проверки). Используйте скрипт, когда это возможно, чтобы сделать проверку повторяемой.
Обновите строки подключения приложения и проверьте его на целевом объекте. Выполните проверку функциональности и производительности для целевых чтений и тестового трафика перед началом записи в рабочую среду. Убедитесь, что критически важные маршруты ведут себя как предполагается.
Переносите трафик записи только после успешного завершения проверки. Смена рабочей среды записывает данные в целевой объект только после успешного и согласованного выполнения тестов. Используйте поэтапное развертывание, если архитектура приложения поддерживает его.
Координация работы команд для беспрепятственной миграции
Обеспечьте поддержку от всех заинтересованных сторон: команд по приложениям, данным, инфраструктуре, безопасности, сетям и управлению. Согласовывать ожидания и обязанности заранее. Совместное владение уменьшает недоразумения и задержки во время выполнения.
Используйте планирование и пробные запуски для создания доверия команды и уточнения процедур. Нет сочетаний клавиш для плавной миграции. Пробные запуски выявляют проблемы в менее рискованной среде и дают командам возможность попрактиковаться.
Относитесь к переключению как к критически важному и срочному мероприятию. Переключение требует точной координации и четкой коммуникации. Назначьте лиц, принимающих решения, и создайте пути эскалации перед началом работы.
Узнайте, кто будет выполнять каждый шаг, когда это должно произойти, и как свести к минимуму время простоя. Назначьте обязанности, установите временную шкалу и выровняйте критерии успешности. Задокументируйте руководство по переходу и поделитесь им со всеми участниками.
Координируйте действия со всеми заинтересованными сторонами, когда для перехода требуется обновление нескольких рабочих нагрузок одновременно. Запланируйте переход во время окна обслуживания, удобного для всех команд. Избегайте пятничных ночей или периодов вблизи крупных бизнес-событий.
Не спешите и не пропускайте шаги должной проверки — откат невозможен. Тщательная проверка и тщательное выполнение предотвращают дорогостоящие ошибки. Примите, что переход требует времени; ориентированные на скорость кратчайшие пути создают риск.
Связанный контент
- Перенос данных в Azure DocumentDB с помощью собственных средств MongoDB.
- Перенос данных в Azure DocumentDB с помощью MongoMigrationwebBasedUtility.