[Документация Yandex Cloud](../../index.md) > [Yandex Data Transfer](../index.md) > [Практические руководства](index.md) > Миграция > Кластер MongoDB

# Миграция кластера MongoDB


Чтобы перенести вашу базу данных MongoDB в сервис Yandex StoreDoc (Managed Service for MongoDB), нужно непосредственно перенести данные, закрыть старую базу данных на запись и переключить нагрузку на кластер БД в Yandex Cloud.

Миграция с помощью Data Transfer позволяет:

* перенести базу без остановки обслуживания пользователей;
* мигрировать со старых версий MongoDB на более новые;
* обойтись без создания промежуточной [виртуальной машины](../../glossary/vm.md) или разрешения доступа к вашему кластеру-приемнику Yandex StoreDoc из интернета.

Подробнее в разделе [Какие задачи решает сервис Yandex Data Transfer](../concepts/use-cases.md).

Чтобы использовать этот способ миграции, разрешите подключение к кластеру-источнику из интернета.


## Необходимые платные ресурсы {#paid-resources}

* Кластер Yandex StoreDoc: выделенные хостам вычислительные ресурсы, объем хранилища и резервных копий ([тарифы Yandex StoreDoc](../../storedoc/pricing.md)).
* Публичные IP-адреса, если для хостов кластера включен публичный доступ ([тарифы Virtual Private Cloud](../../vpc/pricing.md)).
* Каждый трансфер: использование вычислительных ресурсов и количество переданных строк данных ([тарифы Data Transfer](../pricing.md)).


## Перед началом работы {#before-you-begin}

[Создайте кластер-приемник Yandex StoreDoc (Managed Service for MongoDB)](../../storedoc/operations/cluster-create.md), вычислительная мощность и размер хранилища которого соответствуют среде, в которой развернута мигрируемая база данных.

Имя базы в кластере-приемнике должно совпадать с именем базы-источника.

## Перенос данных {#data-transfer}

# Миграция данных с использованием сервиса Yandex Data Transfer {#data-transfer}

1. [Подготовьте кластер-источник](../operations/prepare.md#source-mg).
1. [Подготовьте кластер-приемник](../operations/prepare.md#target-mg).
1. [Создайте эндпоинт для источника](../operations/endpoint/index.md#create) со следующими параметрами:
   
   * **Тип базы данных** — `MongoDB`.
   * **Параметры эндпоинта** → **Настройки подключения** — `Пользовательская инсталляция`.
   
       Укажите параметры подключения к кластеру-источнику.
   
   {% note info %}
   
   Так как сервис не поддерживает перенос коллекций `Time Series`, необходимо [исключить](../operations/endpoint/source/mongodb.md#additional-settings) такие коллекции в настройках эндпоинта.
   
   {% endnote %}
1. [Создайте эндпоинт для приемника](../operations/endpoint/index.md#create) со следующими параметрами:
   
   * **Тип базы данных** — `MongoDB`.
   * **Параметры эндпоинта** → **Настройки подключения** — `Кластер Yandex StoreDoc`.
   
       Укажите идентификатор кластера-приемника.
1. [Создайте трансфер](../operations/transfer.md#create) типа _**Копирование и репликация**_, использующий созданные эндпоинты.
   
   Чтобы ускорить копирование больших коллекций (более 1 ГБ), включите [параллельное копирование](../concepts/sharded.md) в настройках трансфера. Укажите два [воркера](../concepts/index.md#worker) или больше. Коллекция разделится на указанное количество частей, которые будут копироваться параллельно.
   
   Чтобы параллельное копирование работало, поля `_id` во всех документах коллекции должны иметь одинаковый тип данных. Если трансфер обнаруживает неоднородность типов, то коллекция не разбивается на части и переносится в одном потоке. При необходимости удалите из коллекции документы с отличающимися типами данных перед началом трансфера.
   
   {% note info %}
   
   Если после активации трансфера в коллекцию добавится документ с отличающимся типом данных, трансфер перенесет его на стадии репликации после параллельного копирования. Однако при повторной активации трансфер не сможет разбить коллекцию на части, так как требование к одинаковому типу поля `_id` во всех документах коллекции не будет выполнено.
   
   {% endnote %}
1. [Активируйте трансфер](../operations/transfer.md#activate).
1. Дождитесь перехода трансфера в статус **Реплицируется**.
1. Переведите кластер-источник в режим <q>только чтение</q> и переключите нагрузку на кластер-приемник.
1. На странице [мониторинга трансфера](../operations/monitoring.md) дождитесь снижения до нуля характеристики **Maximum data transfer delay**. Это значит, что на кластер-приемник перенесены все изменения, произошедшие в кластере-источнике после завершения копирования данных.
1. [Деактивируйте](../operations/transfer.md#deactivate) трансфер и дождитесь его перехода в статус **Остановлен**.

    Подробнее о статусах трансфера смотрите в разделе [Жизненный цикл трансфера](../concepts/transfer-lifecycle.md#statuses).

1. [Удалите остановленный трансфер](../operations/transfer.md#delete).
1. [Удалите эндпоинты](../operations/endpoint/index.md#delete) для источника и приемника.

## Полезные ссылки {#see-also}

Другие способы миграции описаны в [документации Yandex StoreDoc (Managed Service for MongoDB)](../../storedoc/tutorials/data-migration.md).