Перенос MongoDB в Azure Cosmos DB для виртуальных ядер MongoDB в автономном режиме с помощью собственных средств MongoDB
Область применения: Виртуальные ядра MongoDB
В этом руководстве вы используете собственные средства MongoDB для выполнения автономной (однократной) миграции базы данных из локального или облачного экземпляра MongoDB в Azure Cosmos DB для виртуальных ядер MongoDB. Нативные средства MongoDB — это набор двоичных файлов, упрощающих обработку данных в существующем экземпляре MongoDB. В этом документе основное внимание уделяется переносу данных из экземпляра MongoDB с помощью mongoexport/mongoimport или mongodump/mongorestore. Так как собственные средства подключаются к MongoDB с помощью строка подключения, вы можете запускать средства в любом месте. Собственные средства могут быть самым простым решением для небольших наборов данных, где общее время миграции не является проблемой.
Необходимые компоненты
- Существующий кластер виртуальных ядер Azure Cosmos DB для MongoDB.
- Если у вас нет подписки Azure, создайте учетную запись бесплатно.
- Если у вас есть подписка Azure, создайте новый кластер виртуальных ядер Azure Cosmos DB для MongoDB.
- Собственные средства MongoDB, установленные на компьютере.
Подготовить
Перед началом миграции убедитесь, что вы подготовили учетную запись Azure Cosmos DB для виртуального ядра MongoDB и существующий экземпляр MongoDB для миграции.
- Экземпляр MongoDB (источник)
- Выполните оценку предварительной подготовки, чтобы определить, есть ли список несовместимости и предупреждений между исходным экземпляром и целевой учетной записью.
- Убедитесь, что собственные средства MongoDB соответствуют той же версии, что и существующий (исходный) экземпляр MongoDB.
- Если экземпляр MongoDB имеет другую версию, отличную от версии Azure Cosmos DB для виртуального ядра MongoDB, установите обе версии собственного средства MongoDB и используйте соответствующую версию средства для MongoDB и Azure Cosmos DB для виртуальных ядер MongoDB соответственно.
- Добавить пользователя с разрешениями
readWrite
(при его отсутствии). В конечном итоге эти учетные данные используются с инструментами mongoexport и mongodump .
- Azure Cosmos DB для виртуальных ядер MongoDB (целевой)
- Соберите учетные данные учетной записи виртуального ядра Azure Cosmos DB для учетной записи виртуального ядра MongoDB.
- Настройка параметров брандмауэра в Azure Cosmos DB для виртуального ядра MongoDB.
Совет
Рекомендуется запускать эти средства в той же сети, что и экземпляр MongoDB, чтобы избежать дополнительных проблем брандмауэра.
Выбор надлежащего нативного средства MongoDB
При выборе правильного собственного средства MongoDB для автономной миграции существуют некоторые общие рекомендации.
Выполнение миграции
Перенос коллекции из исходного экземпляра MongoDB в целевую учетную запись Azure Cosmos DB для виртуального ядра MongoDB с помощью предпочтительного собственного средства. Дополнительные сведения о выборе инструмента см . в собственных инструментах MongoDB
Совет
Если у вас просто есть небольшой JSON-файл, который вы хотите импортировать в Azure Cosmos DB для виртуальных ядер MongoDB, средство mongoimport — это быстрое решение для приема данных.
Чтобы экспортировать данные из исходного экземпляра MongoDB, откройте терминал и используйте любой из трех методов, перечисленных здесь.
--host
Укажите аргументы--username
для--password
подключения и экспорта записей JSON.mongoexport \ --host <hostname><:port> \ --username <username> \ --password <password> \ --db <database-name> \ --collection <collection-name> \ --out <filename>.json
Экспорт подмножества данных MongoDB путем добавления аргумента
--query
. Этот аргумент гарантирует, что средство экспортирует только документы, соответствующие фильтру.mongoexport \ --host <hostname><:port> \ --username <username> \ --password <password> \ --db <database-name> \ --collection <collection-name> \ --query '{ "quantity": { "$gte": 15 } }' \ --out <filename>.json
Экспорт данных из Azure Cosmos DB для виртуальных ядер MongoDB.
mongoexport \ --uri <target-connection-string> --db <database-name> \ --collection <collection-name> \ --query '{ "quantity": { "$gte": 15 } }' \ --out <filename>.json
Импортируйте ранее экспортируемый файл в целевую учетную запись виртуального ядра Azure Cosmos DB для MongoDB.
mongoimport \ --file <filename>.json \ --type json \ --db <database-name> \ --collection <collection-name> \ --ssl \ --uri <target-connection-string>
Отслеживайте выходные данные терминала из mongoimport. Выходные данные печатают строки текста в терминал с обновлениями состояния операции импорта.