Миграция кластера Yandex Managed Service for MongoDB
Важно
Этот документ не применим для пользователей Yandex Cloud в регионе Казахстан. См. полный перечень поддерживаемых эндпоинтов в Data Transfer.
Чтобы перенести вашу базу данных в сервис Managed Service for MongoDB, нужно непосредственно перенести данные, закрыть старую базу данных на запись и переключить нагрузку на кластер БД в Yandex Cloud.
Миграция с помощью Data Transfer позволяет:
- перенести базу без остановки обслуживания пользователей;
- мигрировать со старых версий MongoDB на более новые;
- обойтись без создания промежуточной виртуальной машины или разрешения доступа к вашему кластеру-приемнику Managed Service for MongoDB из интернета.
Подробнее см. в разделе Какие задачи решает сервис Yandex Data Transfer.
Чтобы использовать этот способ миграции, разрешите подключение к кластеру-источнику из интернета.
Перед началом работы
Создайте кластер-приемник Managed Service for MongoDB, вычислительная мощность и размер хранилища которого соответствуют среде, в которой развернута мигрируемая база данных.
Имя базы в кластере-приемнике должно совпадать с именем базы-источника.
Перенос данных
-
Создайте эндпоинт для источника со следующими параметрами:
-
Тип базы данных —
MongoDB
. -
Параметры эндпоинта → Настройки подключения —
Пользовательская инсталляция
.Укажите параметры подключения к кластеру-источнику.
Примечание
Так как сервис не поддерживает перенос коллекций Time Series
, необходимо исключить такие коллекции в настройках эндпоинта. -
-
Создайте эндпоинт для приемника со следующими параметрами:
-
Тип базы данных —
MongoDB
. -
Параметры эндпоинта → Настройки подключения —
Кластер Managed Service for MongoDB
.Укажите идентификатор кластера-приемника.
-
-
Создайте трансфер типа Копирование и репликация, использующий созданные эндпоинты.
Чтобы ускорить копирование больших коллекций (более 1 ГБ), включите параллельное копирование в настройках трансфера. Укажите два воркера или больше. Коллекция разделится на указанное количество частей, которые будут копироваться параллельно.
Чтобы параллельное копирование работало, тип данных
поля_id
у всех документов коллекции должен быть одинаковым. Если трансфер обнаруживает неоднородность типов, то коллекция не разбивается на части и переносится в одном потоке. При необходимости перед началом трансфера удалите из коллекции документы с отличающимися типами данных.Примечание
Если после активации трансфера в коллекцию добавится документ с отличающимся типом данных, трансфер перенесет его на стадии репликации, после параллельного копирования. Но при повторной активации трансфер не сможет разбить коллекцию на части, так как требование к типу поля
_id
во всех документах коллекции не будет выполнено. -
Дождитесь перехода трансфера в статус Реплицируется.
-
Переведите кластер-источник в режим
только чтение
и переключите нагрузку на кластер-приемник. -
На странице мониторинга трансфера дождитесь снижения до нуля характеристики Maximum data transfer delay. Это значит, что на кластер-приемник перенесены все изменения, произошедшие в кластере-источнике после завершения копирования данных.
-
Деактивируйте трансфер и дождитесь его перехода в статус Остановлен.
Подробнее о статусах трансфера см. в разделе Жизненный цикл трансфера.
-
Удалите эндпоинты для источника и приемника.
См. также
Другие способы миграции описаны в документации Yandex Managed Service for MongoDB.