Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Решения
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Managed Service for MongoDB
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Информация об имеющихся кластерах
    • Создание кластера
    • Миграция базы данных в Yandex.Cloud
    • Подключение к базе данных
    • Остановка и запуск кластера
    • Изменение настроек кластера и базы данных
    • Обновление версии MongoDB
    • Управление базами данных
    • Управление хостами кластера
    • Управление пользователями БД
    • Управление резервными копиями
    • Управление шардами
    • Удаление кластера
  • Сценарии использования
    • Шардирование коллекций
  • Концепции
    • Взаимосвязь ресурсов сервиса
    • Классы хостов
      • Действующие классы хостов
      • Архив
        • До 1 июня 2020 года
      • Использование устаревших классов хостов
    • Сеть в Managed Service for MongoDB
    • Квоты и лимиты
    • Типы хранилища
    • Резервные копии
    • Репликация
    • Шардирование
    • Пользователи и роли
    • Поддерживаемые клиенты
  • Управление доступом
  • Правила тарификации
    • Действующие правила
    • Архив
      • До 1 января 2019 года
      • С 1 января до 1 марта 2019 года
      • С 1 марта 2019 года до 1 февраля 2020 года
  • Справочник API
    • Аутентификация в API
    • gRPC
      • Обзор
      • BackupService
      • ClusterService
      • DatabaseService
      • ResourcePresetService
      • UserService
      • OperationService
    • REST
      • Обзор
      • Backup
        • Обзор
        • get
        • list
      • Cluster
        • Обзор
        • addHosts
        • addShard
        • backup
        • create
        • delete
        • deleteHosts
        • deleteShard
        • enableSharding
        • get
        • getShard
        • list
        • listBackups
        • listHosts
        • listLogs
        • listOperations
        • listShards
        • move
        • restore
        • start
        • stop
        • update
      • Database
        • Обзор
        • create
        • delete
        • get
        • list
      • ResourcePreset
        • Обзор
        • get
        • list
      • User
        • Обзор
        • create
        • delete
        • get
        • grantPermission
        • list
        • revokePermission
        • update
      • Operation
        • Обзор
        • get
  • Вопросы и ответы
    • Общие вопросы
    • Вопросы о MongoDB
    • Все вопросы на одной странице
  1. Пошаговые инструкции
  2. Миграция базы данных в Yandex.Cloud

Миграция данных в Managed Service for MongoDB

  • Создайте дамп
  • (опционально) Создайте виртуальную машину для загрузки дампа
  • Создайте кластер Managed Service for MongoDB
    • Восстановите данные

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

Перенести данные в кластер Managed Service for MongoDB можно с помощью утилит mongodump и mongorestore: создайте дамп рабочей базы и восстановите его в нужном кластере.

Перед тем, как переносить данные, проверьте, совпадают ли версии СУБД у существующей базы данных и вашего кластера в Yandex.Cloud. Если версии разные, восстановить сделанный дамп не получится.

Последовательность действий:

  1. Создайте дамп переносимой базы с помощью утилиты mongodump.
  2. При необходимости создайте виртуальную машину в Compute Cloud, чтобы восстанавливать базу из дампа в инфраструктуре Yandex.Cloud.
  3. Создайте кластер Managed Service for MongoDB, на котором будет развернута восстановленная база.
  4. Восстановите данные из дампа в кластере с помощью утилиты mongorestore.

Создайте дамп

Создать дамп базы данных следует с помощью утилиты mongodump. Подробно утилита описана в документации MongoDB.

  1. Установите mongodump и дополнительные утилиты для работы с MongoDB. Пример для дистрибутивов Ubuntu и Debian:

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
    ...
    echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
    ...
    sudo apt-get update
    ...
    sudo apt-get install mongodb-org-shell mongodb-org-tools
    

    Инструкции для других платформ, а также более подробную информацию об установке утилит можно найти на странице Install MongoDB.

  2. Перед созданием дампа рекомендуется переключить СУБД в режим «только чтение», чтобы не потерять данные, которые могут появиться за время создания дампа.

  3. Создайте дамп базы данных:

    mongodump --host <адрес сервера СУБД> --port <порт> --username <имя пользователя> --password "<пароль>" --db <имя базы данных> --out ~/db_dump
    

    Если вы можете использовать несколько ядер процессора для создания дампа, задайте флаг -j с количеством доступных ядер:

    mongodump --host <адрес сервера СУБД> --port <порт> --username <имя пользователя> --password "<пароль>" -j <количество ядер> --db <имя базы данных> --out ~/db_dump
    
  4. Архивируйте дамп:

    tar -cvzf db_dump.tar.gz ~/db_dump
    

(опционально) Создайте виртуальную машину для загрузки дампа

Промежуточная виртуальная машина в Yandex Compute Cloud понадобится, если:

  • К вашему кластеру Managed Service for MongoDB нет доступа из интернета.
  • Ваше оборудование или соединение с кластером в Yandex.Cloud недостаточно надежны.

Чтобы подготовить виртуальную машину для восстановления дампа:

  1. В консоли управления создайте новую виртуальную машину из образа Ubuntu 18.04. Нужное количество оперативной памяти и ядер процессора зависит от объема переносимых данных и требуемой скорости переноса.

    Минимальной конфигурации (1 ядро, 2 ГБ RAM, 10 ГБ дискового пространства) должно хватить для переноса базы до 1 ГБ. Чем больше переносимая база, тем больше должно быть дискового пространства (как минимум в два раза больше, чем размер базы) и оперативной памяти.

    Виртуальная машина должна находиться в той же сети и зоне доступности, что хост-мастер кластера Managed Service for MongoDB. Кроме того, виртуальной машине должен быть присвоен внешний IP-адрес, чтобы вы могли загрузить файл дампа извне Yandex.Cloud.

  2. Установите клиент MongoDB и дополнительные утилиты для работы с СУБД:

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
    ...
    echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
    ...
    sudo apt-get update
    ...
    sudo apt-get install mongodb-org-shell mongodb-org-tools
    
  3. Перенесите дамп базы данных с вашего сервера на виртуальную машину, например, используя утилиту scp:

    scp ~/db_dump.tar.gz <имя пользователя ВМ>@<публичный адрес ВМ>:/tmp/db_dump.tar.gz
    
  4. Распакуйте дамп на виртуальной машине:

    tar -xzf /tmp/db_dump.tar.gz
    

В результате вы должны получить виртуальную машину с дампом базы данных, который готов к восстановлению на кластер Managed Service for MongoDB.

Создайте кластер Managed Service for MongoDB

Создайте кластер, вычислительная мощность и размер хранилища которого соответствуют среде, в которой развернута существующая база данных. Подробно о создании кластера Managed Service for MongoDB — на странице Создание MongoDB-кластера.

Восстановите данные

Восстанавливать базу данных из дампа следует с помощью утилиты mongorestore.

  • Если вы восстанавливаете дамп с виртуальной машины в Yandex.Cloud:

    $ mongorestore --host <адрес сервера СУБД> \
                   --port <порт> \
                   --username <имя пользователя> \
                   --password "<пароль>" \
                   -j <количество потоков> \
                   --authenticationDatabase <имя базы данных> \
                   --nsInclude '*.*' /tmp/db_dump
    
  • Если вы восстанавливаете дамп с сервера вне Yandex.Cloud, для mongorestore необходимо явно задать параметры SSL:

    $ mongorestore --host <адрес сервера СУБД> \
                   --port <порт> \
                   --ssl \
                   --sslCAFile <путь к файлу сертификата> \
                   --username <имя пользователя> \
                   --password "<пароль>" \
                   -j <количество потоков> \
                   --authenticationDatabase <имя базы данных> \
                   --nsInclude '*.*' ~/db_dump
    
  • Если нужно перенести только определенные коллекции, то задайте флаги --nsInclude и --nsExcludeс указанием на пространства имен, которые нужно или не нужно включать для восстанавливаемого набора коллекций.

В этой статье:
  • Создайте дамп
  • (опционально) Создайте виртуальную машину для загрузки дампа
  • Создайте кластер Managed Service for MongoDB
  • Восстановите данные
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»