Облачная платформаAdvanced

Миграция данных

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

mongoexport и mongoimport являются инструментами резервного копирования и восстановления, предоставляемыми MongoDB client. Вы можете установить MongoDB client на локальное устройство или ECS и использовать инструменты mongoexport и mongoimport для миграции ваших локальных баз данных MongoDB или других облачных баз данных MongoDB в DDS instances.

Перед миграцией данных из MongoDB database в DDS перенесите данные в файл .json с помощью инструмента mongoexport. В этом разделе описывается, как импортировать данные из файлов JSON в DDS с использованием инструмента mongoimport на ECS или с некоторых других устройств, которые могут получить доступ к DDS.

Предварительные условия

  1. ECS или устройство, которое может получить доступ к DDS, готово к использованию.
    • Чтобы подключиться к DDS DB instance через частную сеть, создайте и войдите в ECS, см. "Creating and Logging In to a Windows ECS" или "Creating and Logging In to a Linux ECS" в Elastic Cloud Server User Guide.
    • Чтобы привязать EIP к DDS instance:
      1. Привяжите EIP к узлу в инстансе. Подробности о том, как привязать EIP к узлу, см. "Binding an EIP" в Getting Started with Document Database Service .
      2. Убедитесь, что ваше локальное устройство может получить доступ к EIP, привязанному к DB instance.
  2. Инструмент миграции установлен на подготовленном ECS.

    Для получения подробной информации о том, как установить инструмент миграции, см. How Can I Install a MongoDB Client?

    Note

    MongoDB client предоставляет инструменты mongoexport и mongoimport.

Экспорт данных

  1. Войдите в ECS или устройство, которое может получить доступ к DDS.
  2. Используйте инструмент mongoexport для переноса данных из исходной базы данных в файл .json.

    SSL‑соединение используется в качестве примера. Если вы выбираете обычное соединение, удалите --ssl --sslAllowInvalidCertificates из следующей команды.

    ./mongoexport --host <DB_ADDRESS> --port <DB_PORT> --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase <AUTH_DB> -u <DB_USER> --db <DB_NAME> --collection <DB_COLLECTION> --out <DB_PATH>

    • DB_ADDRESS — это адрес базы данных.
    • DB_PORT — это порт базы данных.
    • AUTH_DB — это база данных для хранения информации DB_USER. Обычно это значение равно admin.
    • DB_USER — это пользователь базы данных.
    • DB_NAME — это имя базы данных, из которой будут экспортированы данные.
    • DB_COLLECTION — это коллекция базы данных, из которой будут экспортированы данные.
    • DB_PATH — это путь, где находится файл .json.

    Введите пароль администратора базы данных, когда будет запрошено:

    Enter password:

    Ниже приведён пример. После выполнения команды будет создан файл exportfile.json:

    ./mongoexport --host 192.168.1.21 --port 8635 --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase admin -u rwuser --db test02 --collection Test --out /tmp/mongodb/export/exportfile.json

  3. Просмотрите результаты

    Если отображается информация, аналогичная следующей, данные успешно экспортированы. x — это количество экспортированных записей.

    exported x records

  4. Сожмите экспортированный файл .json.

    gzip exportfile.json

    Сжатие файла помогает сократить время, необходимое для передачи данных. Сжатый файл — exportfile.json.gz.

Импорт данных

  1. Log in в ECS или на любом устройстве, которое вы будете использовать для доступа к DDS.
  2. Загрузите данные для импорта в ECS или на устройство.

    Выберите метод загрузки в зависимости от используемой ОС.

    • В Linux, например, вы можете использовать протокол безопасного копирования (SCP):

      scp <IDENTITY_FILE> <REMOTE_USER>@<REMOTE_ADDRESS>:<REMOTE_DIR>

      • IDENTITY_FILE — каталог, в котором находится файл exportfile.json.gz. Права доступа к файлу — 600.
      • REMOTE_USER — пользователь ОС ECS.
      • REMOTE_ADDRESS — адрес ECS.
      • REMOTE_DIR — каталог ECS, в который загружается файл exportfile.json.gz.
    • В Windows загрузите exportfile.json.gz в ECS с помощью инструментов передачи файлов.

  3. Распакуйте пакет.

    gzip -d exportfile.json.gz

  4. Импортируйте JSON‑файл в базу данных DDS.

    SSL‑соединение используется в качестве примера. Если вы выбираете обычное соединение, удалите --ssl --sslAllowInvalidCertificates из следующей команды.

    ./mongoimport --host <DB_ADDRESS> --port <DB_PORT> --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase <AUTH_DB> -u <DB_USER> --db <DB_NAME> --collection <DB_COLLECTION> --file <DB_PATH>

    • DB_ADDRESS указывает IP‑адрес экземпляра БД.
    • DB_PORT указывает порт базы данных.
    • AUTH_DB указывает базу данных, которая аутентифицирует DB_USER. Обычно это значение admin.
    • DB_USER указывает имя учётной записи администратора базы данных.
    • DB_NAME указывает имя базы данных, в которую будут импортированы данные.
    • DB_COLLECTION указывает коллекцию базы данных, в которую будут импортированы данные.
    • DB_PATH указывает путь, где находится файл .json.

    Введите пароль администратора базы данных, когда будет запрошено:

    Enter password:

    Ниже приведён пример:

    ./mongoimport --host 192.168.1.21 --port 8635 --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase admin -u rwuser --db test02 --collection Test --file /tmp/mongodb/export/exportfile.json

  5. Просмотрите результаты.

    Если отображается информация, аналогичная следующей, данные успешно импортированы. x — количество импортированных записей.

    imported x records