Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
    • Cloud Interconnect
    • Cloud Backup
    • Compute Cloud
    • Object Storage
    • Managed Service for Kubernetes®
    • Managed Service for PostgreSQL
    • Managed Service for ClickHouse®
    • Monium
    • Cloud CDN
    • Network Load Balancer
    • Virtual Private Cloud
    • Cloud DNS
    • Application Load Balancer
    • Yandex Cloud Router
    • Managed Service for MySQL®
    • Managed Service for Valkey™
    • Managed Service for Apache Spark™
    • Managed Service for OpenSearch
    • Managed Service for Apache Kafka®
    • Data Transfer
    • Yandex MPP Analytics Engine for PostgreSQL
    • Managed Service for YDB
    • SpeechKit
    • Yandex Identity Hub
    • Key Management Service
    • Certificate Manager
    • Yandex Lockbox
    • Audit Trails
    • Container Registry
    • Managed Service for Prometheus®
    • Message Queue
    • Identity and Access Management
    • Yandex Cloud Console
    • Resource Manager
    • Yandex Cloud Billing
    • Cloud Apps
    • Yandex AI Studio
    • Yandex BareMetal
    • Smart Web Security
    • Security Deck
    • Yandex Cloud Video
    • Stackland
    • Yandex Managed Service for Apache Airflow®
    • Data Processing
    • Yandex MetaData Hub
    • Yandex WebSQL
    • DataLens
    • Yandex Search API
    • SpeechSense
    • DataSphere
    • Vision OCR
    • Translate
    • Cloud Registry
    • SmartCaptcha
    • Cloud Desktop
    • Yandex SIEM
    • SourceCraft Code Assistant
    • Managed Service for GitLab
    • Cloud Functions
    • API Gateway
    • Yandex Cloud Postbox
    • Serverless Integrations
    • IoT Core
    • Serverless Containers
    • Cloud Notification Service
    • Yandex Query
  • Статус работы сервисов
  • Marketplace
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»
Yandex Data Transfer
KZ
  • Доступные трансферы
  • Начало работы
    • Все инструкции
    • Подготовка к трансферу
      • Управление эндпоинтами
      • Миграция эндпоинтов в другую зону доступности
        • Источник
        • Приемник
    • Управление трансфером
    • Работа с базами данных во время трансфера
    • Мониторинг состояния трансфера
  • Решение проблем
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • Обучающие курсы

В этой статье:

  • Сценарии передачи данных в MongoDB/Yandex StoreDoc (Managed Service for MongoDB)
  • Настройка источника данных
  • Подготовка базы данных приемника
  • Настройка эндпоинта-приемника MongoDB/Yandex StoreDoc (Managed Service for MongoDB)
  • Кластер Yandex StoreDoc (Managed Service for MongoDB)
  • Пользовательская инсталляция
  • Дополнительные настройки
  • Действия с базой данных во время трансфера
  • Соответствие типов поддерживаемых данных в СУБД и эндпоинте
  • Решение проблем, возникающих при переносе данных
  • Размер ключа коллекции превышает 5 МБ
  • Размер объекта в коллекции превышает 16 МБ
  • Не удалось найти ни одной таблицы
  • Ошибка при трансфере шардированного кластера
  • Ошибка при переносе коллекций timeseries
  • Не распознается IP-адрес или FQDN внешнего кластера
  1. Пошаговые инструкции
  2. Настройка эндпоинтов
  3. MongoDB/Yandex StoreDoc
  4. Приемник

Передача данных в эндпоинт-приемник MongoDB/Yandex StoreDoc (Managed Service for MongoDB)

Статья создана
Yandex Cloud
Обновлена 21 сентября 2026 г.
Открыть в Markdown
  • Сценарии передачи данных в MongoDB/Yandex StoreDoc (Managed Service for MongoDB)
  • Настройка источника данных
  • Подготовка базы данных приемника
  • Настройка эндпоинта-приемника MongoDB/Yandex StoreDoc (Managed Service for MongoDB)
    • Кластер Yandex StoreDoc (Managed Service for MongoDB)
    • Пользовательская инсталляция
    • Дополнительные настройки
  • Действия с базой данных во время трансфера
  • Соответствие типов поддерживаемых данных в СУБД и эндпоинте
  • Решение проблем, возникающих при переносе данных
    • Размер ключа коллекции превышает 5 МБ
    • Размер объекта в коллекции превышает 16 МБ
    • Не удалось найти ни одной таблицы
    • Ошибка при трансфере шардированного кластера
    • Ошибка при переносе коллекций timeseries
    • Не распознается IP-адрес или FQDN внешнего кластера

Важно

Для пользователей Yandex Cloud в регионе Казахстан эндпоинты Data Transfer для баз данных MongoDB и Elasticsearch доступны только в пользовательской инсталляции. Сервисы управляемых баз данных для этих эндпоинтов не поддерживаются.

С помощью сервиса Yandex Data Transfer вы можете переносить данные в базу MongoDB/Yandex StoreDoc (Managed Service for MongoDB) и реализовывать различные сценарии переноса, обработки и трансформации данных. Для реализации трансфера:

  1. Ознакомьтесь с возможными сценариями передачи данных.
  2. Настройте один из поддерживаемых источников данных.
  3. Подготовьте базу данных MongoDB/Yandex StoreDoc (Managed Service for MongoDB) к трансферу.
  4. Настройте эндпоинт-приемник в Yandex Data Transfer.
  5. Создайте и запустите трансфер.
  6. Выполняйте необходимые действия по работе с базой и контролируйте трансфер.
  7. При возникновении проблем, воспользуйтесь готовыми решениями по их устранению.

Сценарии передачи данных в MongoDB/Yandex StoreDoc (Managed Service for MongoDB)Сценарии передачи данных в MongoDB/Yandex StoreDoc (Managed Service for MongoDB)

  1. Миграция — перенос данных из одного хранилища в другое. Часто это перенос базы из устаревших локальных баз в управляемые облачные.

    • Миграция кластера MongoDB;
    • Миграция кластера Yandex StoreDoc (Managed Service for MongoDB) с версии 4.4 на 6.0.
  2. Поставка данных — процесс доставки произвольных данных в целевые хранилища. Процесс поставки включает извлечение данных из очереди и их десериализацию с последующей трансформацией данных в формат целевого хранилища.

    • Поставка данных из Apache Kafka® в Yandex StoreDoc (Managed Service for MongoDB).

Подробное описание возможных сценариев передачи данных в Yandex Data Transfer читайте в разделе Практические руководства.

Настройка источника данныхНастройка источника данных

Настройте один из поддерживаемых источников данных:

  • MongoDB/Yandex StoreDoc
  • Airbyte®
  • YDS
  • Apache Kafka®

Полный список поддерживаемых источников и приемников в Yandex Data Transfer читайте в разделе Доступные трансферы.

Подготовка базы данных приемникаПодготовка базы данных приемника

Yandex StoreDoc (Managed Service for MongoDB)
MongoDB
  1. Создайте базу данных.
  2. Создайте пользователя с ролью readWrite на созданную базу.
  3. Чтобы шардировать переносимые коллекции в кластере-приемнике Yandex StoreDoc:
    1. Следуя инструкции, создайте и настройте в базе-приемнике пустые шардированные коллекции.

      Сервис Data Transfer не шардирует переносимые коллекции автоматически. Шардирование больших коллекций может занять продолжительное время и снизить скорость трансфера.

    2. Если шардирование происходит по ключу, отличному от _id (используется по умолчанию), назначьте пользователю роль mdbShardingManager.

    3. При создании эндпоинта для приемника выберите политику очистки DISABLED или TRUNCATE.

      Выбор политики DROP приведет к тому, что при активации трансфера сервис удалит из базы-приемника все данные, в т. ч. шардированные коллекции, и создаст вместо них новые, нешардированные.

  1. Если вы не планируете использовать для подключения к внешнему кластеру сервис Cloud Interconnect или VPN, разрешите подключения к такому кластеру из интернета с IP-адресов, используемых сервисом Data Transfer.

    Подробнее о настройке сети для работы с внешними ресурсами читайте в концепции.

  2. Убедитесь, что версия MongoDB на приемнике не ниже, чем на источнике.

  3. Убедитесь, что кластер MongoDB сконфигурирован таким образом, чтобы на запросы к нему он возвращал корректно разрешающиеся IP-адреса или FQDN (Fully Qualified Domain Name).

  4. Настройте кластер-приемник, чтобы к нему можно было подключиться из интернета:

    1. Измените в конфигурационном файле значение настройки net.bindIp со 127.0.0.1 на 0.0.0.0:

      # network interfaces
      net:
        port: 27017
        bindIp: 0.0.0.0
      
    2. Перезапустите сервис mongod:

      sudo systemctl restart mongod.service
      
  5. Если кластер-приемник не использует репликацию, включите ее:

    1. Добавьте в конфигурационный файл /etc/mongod.conf настройки репликации:

      replication:
        replSetName: <имя_набора_реплик>
      
    2. Перезапустите сервис mongod:

      sudo systemctl restart mongod.service
      
    3. Подключитесь к MongoDB и инициализируйте набор реплик командой:

      rs.initiate({
          _id: "<имя_набора_реплик>",
          members: [{
              _id: 0,
              host: "<IP-адрес_который_слушает_Yandex_StoreDoc>:<порт>"
          }]
      });
      
  6. Подключитесь к кластеру и создайте базу-приемник:

    use <имя_базы>
    
  7. Создайте пользователя с правами readWrite на базу-приемник:

    use admin;
    db.createUser({
        user: "<имя_пользователя>",
        pwd: "<пароль>",
        mechanisms: ["SCRAM-SHA-1"],
        roles: [
            {
                db: "<имя_базы-приемника>",
                role: "readWrite"
            }
        ]
    });
    

    После старта трансфер подключится к приемнику от имени этого пользователя.

  8. Чтобы шардировать переносимые коллекции в кластере-приемнике:

    1. Подготовьте базу данных и создайте в ней пустые коллекции с теми же именами, что и на источнике.

      Сервис Data Transfer не шардирует переносимые коллекции автоматически. Шардирование больших коллекций может занять продолжительное время и снизить скорость трансфера.

    2. Включите шардирование для базы-приемника:

      sh.enableSharding("<имя_базы-приемника>")
      
    3. Задайте шардирование для каждой коллекции с учетом ее пространства имен:

      sh.shardCollection("<имя_базы-приемника>.<имя_коллекции>", { <имя_поля>: <1|"hashed">, ... });
      
    4. Чтобы убедиться в том, что шардирование настроено и включено, получите список доступных шардов:

      sh.status()
      
    5. Если для шардирования используется ключ, отличный от _id (значение по умолчанию), назначьте системную роль clusterManager пользователю, от имени которого сервис Data Transfer будет подключаться к кластеру-приемнику:

      use admin;
      db.grantRolesToUser("<имя_пользователя>", ["clusterManager"]);
      
    6. При создании эндпоинта для приемника выберите политику очистки DISABLED или TRUNCATE.

      Выбор политики DROP приведет к тому, что при активации трансфера сервис удалит из базы-приемника все данные, в т. ч. шардированные коллекции, и создаст вместо них новые, нешардированные.

Настройка эндпоинта-приемника MongoDB/Yandex StoreDoc (Managed Service for MongoDB)Настройка эндпоинта-приемника MongoDB/Yandex StoreDoc (Managed Service for MongoDB)

Data Transfer поддерживает трансферы с MongoDB, начиная с версии 3.6.

При создании или изменении эндпоинта вы можете задать:

  • Настройки подключения к кластеру Yandex StoreDoc или пользовательской инсталляции, в т. ч. на базе виртуальных машин Yandex Compute Cloud. Эти параметры обязательные.
  • Дополнительные параметры.

Кластер Yandex StoreDoc (Managed Service for MongoDB)Кластер Yandex StoreDoc (Managed Service for MongoDB)

Важно

Для создания или редактирования эндпоинта управляемой базы данных вам потребуется роль managed-mongodb.viewer или примитивная роль viewer, выданная на каталог кластера этой управляемой базы данных.

Подключение к БД с указанием кластера в Yandex Cloud.

Консоль управления
CLI
Terraform
API
  • Тип подключения — выберите вариант подключения к базе данных:

    • Ручная настройка — позволяет задать настройки подключения вручную.

      Выберите тип инсталляции Кластер Yandex StoreDoc и задайте настройки:

      • Кластер Yandex StoreDoc — выберите кластер, к которому необходимо подключиться.
      • Источник аутентификации — укажите имя базы данных в кластере.
      • Пользователь — укажите имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.
      • Пароль — укажите пароль пользователя для доступа к базе данных.
    • Connection Manager — позволяет подключаться к кластеру через Yandex Connection Manager:

      • Выберите каталог, в котором находится кластер Yandex StoreDoc.

      • Выберите тип инсталляции Кластер управляемой БД и задайте настройки:

        • Кластер управляемой БД — выберите кластер, к которому необходимо подключиться.
        • Подключение — выберите подключение Connection Manager или создайте его.
        • Источник аутентификации — укажите имя базы данных в кластере.

      Важно

      Чтобы использовать подключение из Connection Manager, у пользователя должны быть права доступа не ниже connection-manager.user к этому подключению.

  • Группы безопасности — выберите облачную сеть для размещения эндпоинта и группы безопасности для сетевого трафика.

    Это позволит применить к ВМ и кластерам в выбранной сети указанные правила групп безопасности без изменения настроек этих ВМ и кластеров. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

  • Тип эндпоинта — mongo-target.
  • --cluster-id — идентификатор кластера, к которому необходимо подключиться.

  • --database — имя базы данных.

  • --user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • --security-group — группы безопасности для сетевого трафика, правила которых применятся к ВМ и кластерам без изменения их настроек. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

  • Чтобы задать пароль пользователя для доступа к базе данных, используйте один из параметров:

    • --raw-password — пароль в текстовом виде.

    • --password-file — путь к файлу с паролем.

  • Тип эндпоинта — mongo_target.
  • connection.connection_options.mdb_cluster_id — идентификатор кластера, к которому необходимо подключиться.

  • subnet_id — идентификатор подсети, в которой находится кластер. Трансфер будет использовать эту подсеть для доступа к кластеру. Если идентификатор не указан, то кластер должен быть доступен из интернета.

    Если значение в этом поле задано для обоих эндпоинтов, то обе подсети должны быть размещены в одной зоне доступности.

  • security_groups — группы безопасности для сетевого трафика.

    Правила групп безопасности применяются к трансферу. Они позволяют открыть сетевой доступ с ВМ трансфера к кластеру. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

    Группы безопасности и подсеть subnet_id, если она указана, должны принадлежать той же сети, в которой размещен кластер.

    Примечание

    В Terraform сеть для групп безопасности задавать не нужно.

  • auth_source — имя базы данных в кластере.

  • connection.connection_options.user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • connection.connection_options.password.raw — пароль в текстовом виде.

Пример структуры конфигурационного файла:

resource "yandex_datatransfer_endpoint" "<имя_эндпоинта_в_Terraform>" {
  name = "<имя_эндпоинта>"
  settings {
    mongo_target {
      security_groups = ["<список_идентификаторов_групп_безопасности>"]
      subnet_id       = "<идентификатор_подсети>"
      connection {
        connection_options {
          mdb_cluster_id = "<идентификатор_кластера>"
          auth_source    = "<имя_базы_данных>"
          user           = "<имя_пользователя>"
          password {
            raw = "<пароль_пользователя>"
          }
        }
      }
      <дополнительные_настройки_эндпоинта>
    }
  }
}

Подробнее в документации провайдера Terraform.

  • securityGroups — группы безопасности для сетевого трафика, правила которых применятся к ВМ и кластерам без изменения их настроек. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

  • mdbClusterId — идентификатор кластера, к которому необходимо подключиться.

  • database — имя базы данных.

  • user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • password.raw — пароль пользователя для доступа к базе данных (в текстовом виде).

Пользовательская инсталляцияПользовательская инсталляция

Подключение к БД с явным указанием сетевых адресов и портов.

Консоль управления
CLI
Terraform
API
  • Тип подключения — выберите вариант подключения к базе данных:

    • Ручная настройка — позволяет задать настройки подключения вручную.

      Выберите тип инсталляции Пользовательская инсталляция и задайте настройки:

      • Хосты — укажите IP-адреса или FQDN хостов, к которым необходимо подключиться.

      • Набор реплик — укажите имя набора реплик.

      • Порт — укажите номер порта, который сервис Data Transfer будет использовать для подключения.

      • Сертификат CA — для шифрования передаваемых данных загрузите файл PEM-сертификата или добавьте его содержимое в текстовом виде.

        Важно

        Если не добавить сертификат, трансфер может завершиться ошибкой.

      • Идентификатор подсети — выберите или создайте подсеть в нужной зоне доступности. Трансфер будет использовать эту подсеть для доступа к базе данных.

        Если значение в этом поле задано для обоих эндпоинтов, то обе подсети должны быть размещены в одной зоне доступности.

      • Источник аутентификации — укажите имя базы данных в пользовательской инсталляции.

      • Пользователь — укажите имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

      • Пароль — укажите пароль пользователя для доступа к базе данных.

    • Connection Manager — позволяет подключаться к базе данных через Yandex Connection Manager:

      • Выберите каталог, в котором создано подключение Connection Manager.

      • Выберите тип инсталляции Пользовательская инсталляция и задайте настройки:

        • Подключение — выберите подключение Connection Manager или создайте его.

        • Набор реплик — укажите имя набора реплик.

        • Источник аутентификации — укажите имя базы данных в пользовательской инсталляции.

        • Идентификатор подсети — выберите или создайте подсеть в нужной зоне доступности. Трансфер будет использовать эту подсеть для доступа к базе данных.

          Если значение в этом поле задано для обоих эндпоинтов, то обе подсети должны быть размещены в одной зоне доступности.

      Важно

      Чтобы использовать подключение из Connection Manager, у пользователя должны быть права доступа не ниже connection-manager.user к этому подключению.

  • Группы безопасности — выберите облачную сеть для размещения эндпоинта и группы безопасности для сетевого трафика.

    Это позволит применить к ВМ и БД в выбранной сети указанные правила групп безопасности без изменения настроек этих ВМ и БД. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

  • Тип эндпоинта — mongo-target.
  • --host — IP-адрес или FQDN хоста-мастера, к которому необходимо подключиться.

  • --port — номер порта, который сервис Data Transfer будет использовать для подключения.

  • --ca-certificate — сертификат CA, если требуется шифрование передаваемых данных, например для соответствия требованиям PCI DSS.

    Важно

    Если не добавить сертификат, трансфер может завершиться ошибкой.

  • --subnet-id — идентификатор подсети, в которой находится хост. Трансфер будет использовать эту подсеть для доступа к хосту.

  • --database — имя базы данных.

  • --user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • --security-group — группы безопасности для сетевого трафика, правила которых применятся к ВМ и кластерам без изменения их настроек. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

  • Чтобы задать пароль пользователя для доступа к базе данных, используйте один из параметров:

    • --raw-password — пароль в текстовом виде.

    • --password-file — путь к файлу с паролем.

  • Тип эндпоинта — mongo_target.
  • on_premise.port — номер порта, который сервис Data Transfer будет использовать для подключения.

  • connection.connection_options.on_premise.tls_mode.enabled.ca_certificate — сертификат CA, если требуется шифрование передаваемых данных, например, для соответствия требованиям PCI DSS.

    Важно

    Если не добавить сертификат, трансфер может завершиться ошибкой.

  • subnet_id — идентификатор подсети, в которой находится кластер. Трансфер будет использовать эту подсеть для доступа к кластеру. Если идентификатор не указан, то кластер должен быть доступен из интернета.

    Если значение в этом поле задано для обоих эндпоинтов, то обе подсети должны быть размещены в одной зоне доступности.

  • security_groups — группы безопасности для сетевого трафика.

    Правила групп безопасности применяются к трансферу. Они позволяют открыть сетевой доступ с ВМ трансфера к ВМ с базой данных. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

    Группы безопасности должны принадлежать той же сети, что и подсеть subnet_id, если она указана.

    Примечание

    В Terraform сеть для групп безопасности задавать не нужно.

  • connection.connection_options.on_premise.replica_set — укажите имя набора реплик.

  • connection.connection_options.on_premise.hosts — укажите IP-адреса или FQDN хостов, к которым необходимо подключиться.

  • auth_source — имя базы данных в кластере.

  • connection.connection_options.user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • connection.connection_options.password.raw — пароль в текстовом виде.

Пример структуры конфигурационного файла:

resource "yandex_datatransfer_endpoint" "<имя_эндпоинта_в_Terraform>" {
  name = "<имя_эндпоинта>"
  settings {
    mongo_target {
      security_groups = ["<список_идентификаторов_групп_безопасности>"]
      subnet_id       = "<идентификатор_подсети>"
      connection {
        connection_options {
          on_premise {
            hosts       = [ "список хостов набора реплик" ]
            port        = "<порт_для_подключения>"
            replica_set = "<имя_набора_реплик>"
            tls_mode {
              enabled {
                ca_certificate = "<сертификат_в_формате_PEM>"
              }
            }
          }
          auth_source = "<имя_базы_данных>"
          user        = "<имя_пользователя>"
          password {
            raw = "<пароль_пользователя>"
          }
        }
      }
      <дополнительные_настройки_эндпоинта>
    }
  }
}

Подробнее в документации провайдера Terraform.

  • onPremise — параметры подключения к базе данных:
    • hosts — IP-адрес или FQDN хоста-мастера, к которому необходимо подключиться.

    • port — номер порта, который сервис Data Transfer будет использовать для подключения.

    • tlsMode — параметры шифрования передаваемых данных, если оно требуется, например для соответствия требованиям PCI DSS.

      • disabled — отключено.
      • enabled — включено
        • caCertificate — сертификат CA.

          Важно

          Если не добавить сертификат, трансфер может завершиться ошибкой.

    • subnetId — идентификатор подсети, в которой находится хост. Трансфер будет использовать эту подсеть для доступа к хосту.

  • securityGroups — группы безопасности для сетевого трафика, правила которых применятся к ВМ и кластерам без изменения их настроек. Подробнее читайте в разделе Сеть в Yandex Data Transfer.

  • database — имя базы данных.

  • user — имя пользователя, под которым сервис Data Transfer будет подключаться к базе данных.

  • password.raw — пароль пользователя для доступа к базе данных (в текстовом виде).

Дополнительные настройкиДополнительные настройки

Консоль управления
CLI
Terraform
API
  • База данных — укажите имя базы данных. Если значение не указывать, будет использовано имя базы данных источника.

  • Политика очистки — выберите способ очистки данных в базе-приемнике перед переносом:

    • Не очищать — выберите эту опцию, если будет производиться только репликация без копирования данных.

    • Drop — полное удаление таблиц, участвующих в трансфере (вариант по умолчанию).

      Используйте эту опцию, чтобы при любой активации трансфера в базу-приемник всегда передавалась самая последняя версия схемы таблиц из источника.

    • Truncate — удалить только данные из таблиц, участвующих в трансфере, но оставить схему.

      Используйте эту опцию, если схема в базе-приемнике отличается от той, которая была бы перенесена из источника при трансфере.

--target-database — укажите имя базы данных, если хотите создать коллекции в базе данных с именем, отличным от имени базы-источника.

  • database — укажите имя базы данных, если хотите создать коллекции в базе данных с именем, отличным от имени базы-источника.

  • cleanup_policy — укажите способ очистки данных в базе-приемнике перед переносом:

    • DISABLED — не очищать (вариант по умолчанию).

      Выберите эту опцию, если будет производиться только репликация без копирования данных.

    • DROP — полное удаление коллекций, участвующих в трансфере.

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

    • TRUNCATE — удалить только данные из коллекций, участвующих в трансфере, но оставить сами коллекции.

      Используйте эту опцию, если структура коллекций в базе-приемнике отличается от той, которая была бы перенесена из источника при трансфере.

  • database — укажите имя базы данных, если хотите создать коллекции в базе данных с именем, отличным от имени базы-источника.

  • cleanupPolicy — укажите способ очистки данных в базе-приемнике перед переносом:

    • DISABLED — не очищать (вариант по умолчанию).

      Выберите эту опцию, если будет производиться только репликация без копирования данных.

    • DROP — полное удаление коллекций, участвующих в трансфере.

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

    • TRUNCATE — удалить только данные из коллекций, участвующих в трансфере, но оставить сами коллекции.

      Используйте эту опцию, если структура коллекций в базе-приемнике отличается от той, которая была бы перенесена из источника при трансфере.

Важно

По умолчанию сервис Data Transfer переносит коллекции без шардирования. Если вы переносите данные в шардированный кластер-приемник и хотите, чтобы коллекции шардировались:

  1. Подготовьте кластер-приемник для шардирования коллекций.
  2. Выберите политику очистки DISABLED или TRUNCATE.

Выбор политики DROP приведет к тому, что при активации трансфера сервис удалит из базы-приемника все данные, в т. ч. шардированные коллекции, и создаст вместо них новые, нешардированные.

После настройки источника и приемника данных создайте и запустите трансфер.

Действия с базой данных во время трансфераДействия с базой данных во время трансфера

  • Для трансферов в статусе Копируется запрещено производить действия, которые сокращают временное окно журнала операций (oplog) на источнике. Не стоит добавлять, удалять шарды или каким-либо образом их переконфигурировать в процессе копирования, а также производить другие действия, приводящие к уменьшению временного окна журнала операций.

  • Для трансферов в статусе Реплицируется можно столкнуться с проблемой дублирования ключа в ситуациях, когда приемником выступает шардированный кластер MongoDB (Managed Service for MongoDB) с индексом шардирования, отличным от _id. Во время работы трансфера не рекомендуется создавать на приемнике кластеры с индексами шардирования, отличными от _id.

Соответствие типов поддерживаемых данных в СУБД и эндпоинтеСоответствие типов поддерживаемых данных в СУБД и эндпоинте

Тип MongoDB

Тип эндпоинта

bson

int64

bson

int32

bson

int16

bson

int8

bson

uint64

bson

uint32

bson

uint16

bson

uint8

bson

float

bson

double

bson

string

bson

utf8

bson

boolean

bson

date

bson

datetime

bson

timestamp

bson

any

Решение проблем, возникающих при переносе данныхРешение проблем, возникающих при переносе данных

Известные проблемы, связанные с использованием эндпоинта MongoDB:

  • Размер ключа коллекции превышает 5 МБ
  • Размер объекта в коллекции превышает 16 МБ
  • Не удалось найти ни одной таблицы
  • Ошибка при трансфере шардированного кластера
  • Ошибка при переносе коллекций timeseries
  • Не распознается IP-адрес или FQDN внешнего кластера

Смотрите полный список рекомендаций в разделе Решение проблем.

Размер ключа коллекции превышает 5 МБРазмер ключа коллекции превышает 5 МБ

Текст ошибки:

Warn(replication): Usage of bulk objects in 'database <имя_БД>'
breaks change event log, transfer is stopping.
Reason: (Location<номер_позиции>) Tried to create string longer than 16MB.

Если размер ключа коллекции превышает 5 МБ, трансферы типа Репликация прерываются из-за внутренних ограничений MongoDB на размер пользовательских объектов.

Решение: исключите из трансфера коллекции, превышающие лимиты MongoDB, после чего активируйте трансфер повторно.

Размер объекта в коллекции превышает 16 МБРазмер объекта в коллекции превышает 16 МБ

Текст ошибки:

Warn(replication): Usage of bulk objects in 'collection '<имя_БД>.<имя_коллекции>''
breaks change event log, transfer is stopping.
Reason: (BSONObjectTooLarge) BSONObj size: <размер_объекта> (<размер_объекта_в_hex>) is invalid.
Size muse be between 0 and 16793600(16MB).

Если размер объекта в коллекции превышает 16 МБ, трансферы типа Репликация прерываются из-за внутренних ограничений MongoDB на размер пользовательских объектов.

Решение: исключите из трансфера коллекции, превышающие лимиты MongoDB, после чего активируйте трансфер повторно.

Не удалось найти ни одной таблицыНе удалось найти ни одной таблицы

Текст ошибки:

Unable to find any tables

Из базы данных извлечено пустое число коллекций. Ошибка может возникать, если у пользователя нет прав на базу данных, используемую в трансфере.

Решение: выдайте пользователю, от имени которого трансфер подключается к источнику, права readWrite на базу данных для переноса.

Ошибка при трансфере шардированного кластераОшибка при трансфере шардированного кластера

Решение: задайте в параметре трансфера Настройки копирования → Настройки параллельного копирования количество воркеров, равное количеству переносимых коллекций.

Ошибка при переносе коллекций timeseriesОшибка при переносе коллекций timeseries

Тексты ошибок:

Unable to find any tables
Cannot execute mongo activate hook: 
Failed in accordance with configuration: 
some tables from include list are missing in the source database: [<имя_коллекции>]

Сервис не поддерживает перенос коллекций Time Series.

Решение: исключите из трансфера коллекции Time Series, после чего активируйте трансфер повторно.

Не распознается IP-адрес или FQDN внешнего кластераНе распознается IP-адрес или FQDN внешнего кластера

Трансфер завершается с ошибкой:

server selection error: server selection timeout, current topology: { Type: ReplicaSetNoPrimary, Servers: [{ Addr: <неразрешающееся_FQDN>, Type: Unknown, Last error: connection() error occurred during connection handshake: dial tcp: lookup <неразрешающееся_FQDN> on <IP-адрес>: no such host }, ] }"

Ошибка трансфера связана с конфигурацией кластера MongoDB (Managed Service for MongoDB). Например, когда в описании шардов используются внутренние не разрешающиеся имена.

Решение:

Убедитесь, что кластер MongoDB сконфигурирован таким образом, чтобы на запросы к нему он возвращал корректно разрешающиеся IP-адреса или FQDN (Fully Qualified Domain Name).

Была ли статья полезна?

Предыдущая
Источник
Следующая
Источник
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ТОО «Облачные Сервисы Казахстан»