Mongodump с удаленного сервера - программирование
Подтвердить что ты не робот

Mongodump с удаленного сервера

Недавно мы перенесли некоторые данные в MongoDB и теперь изучаем возможность ежедневного резервного копирования, предпочтительно из задания cron, и восстанавливаем одну из резервных копий во вторичную базу данных mongo.

Наша система настроена следующим образом:

  • Сервер 1: база данных разработки Монго
  • сервер 2: две базы данных mongo, одна для промежуточных данных и одна для производства
  • сервер 3: отсюда мы запускаем все наши задания/пакетные скрипты cron.

Я проверил документы mongo, вошел на наш сервер заданий cron и попытался выполнить следующую команду: (имя пользователя, хост и пароль изменены в целях безопасности, на самом деле я не подключаюсь к localhost)

mongodump --host 127.0.0.1/development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1

Я получаю следующие сообщения:

Пн 7 октября 10:03:42 запуск нового монитора набора реплик для набора реплик 127.0.0.1 с начальным числом развития: 27017
Пн 7 октября 10:03:42 успешно подключен к разработке семян: 27017 для набора реплик 127.0.0.1
Пн. 7 октября 10:03:42 предупреждение: узел: разработка: 27017 не является частью набора: 127.0.0.1 ismaster: {ismaster: true, maxBsonObjectSize: 16777216, ok: 1.0}
Пн 7 октября 10:03:44 Монитор набора реплик запущен, набор реплик 127.0.0.1 запущен, адрес 127.0.0.1/
Пн 7 октября 10:03:44 При запуске [ReplicaSetMonitorWatcher] не удалось подключиться к [127.0.0.1/development:27017] не удалось установить подключение 127.0.0.1/development:27017

Я подтвердил, что могу подключиться к базе данных Монго, используя mongo -u -p ip/development

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

4b9b3361

Ответ 1

mongo клиент может разобрать URI-строку соединения MongoDB, поэтому вместо указания всех параметров подключения вы можете передать URI единой строки соединения.

В вашем случае вы пытаетесь передать URI соединения как host, но 127.0.0.1/development не является допустимым именем хоста. Это означает, что вы должны указать параметр database отдельно от host:

mongodump --host 127.0.0.1 -d development --port 27017 --username user --password pass --out /opt/backup/mongodump-2013-10-07-1

Ответ 2


This worked for me.

Reference: https://docs.mongodb.com/manual/reference/program/mongodump


Синтаксис 1:

mongodump --host <hostname:port> --db <database> --username <username> --password <password> --out <path>

Синтаксис 2:

mongodump -h <hostname:port> -d <database> -u <username> -p <password> -o <path>



Пример 1:

mongodump --host 127.0.0.1:27017 --db db_app --username root --password secret --out /backup/db/app-17-03-07

Пример 2:

mongodump -h 127.0.0.1:27017 -d db_app -u root -p secret -o /backup/db/app-17-03-07

Ответ 3

Вы можете использовать с mongodump с --uri

mongodump --uri "mongodb://usersname:[email protected]:27100/dbname?replicaSet=replica_name&authSource=admin" --out "C:\Umesh"

Все ваши коллекции будут храниться в папке out, в качестве имени вашей базы данных будет создано имя каталога, а все коллекции будут bson, а метаданные будут сохранены в формате json.

Для восстановления

mongorestore --uri "mongodb://usersname:[email protected]:27100/dbname?replicaSet=replica_name&authSource=admin" -d dbname mongodbumppath

Попробуйте, это будет работать.

Ответ 4

mongodump --host remotehostip:port --db dbname -u username -p password

Ответ 5

Вот пример экспорта коллекции с сервера node на локальный компьютер:

Host : xxx.xxx.xxx.xx
Port :27017
Username:"XXXX"
Password :"YYYY"
AuthDB : "admin"
"DB": "mydb"

D:\mongodb-backup>mongodump -h xxx.xxx.xxx.xxx –port 27017 -u "XXXX" -p "YYYY" –authenticationDatabase "admin" –db "mydb"

Ответ 6

Вы также можете использовать gzip для резервного копирования одной коллекции и сжатия резервной копии на лету

mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz

Или с датой в имени файла:

mongodump --db somedb --collection somecollection --out - | gzip > dump_'date "+%Y-%m-%d"'.gz