Как мне создать дамп MongoDB моей базы данных?

Какую команду я использую и запускаю?


person TIMEX    schedule 02.02.2011    source источник
comment
Просто один mongodump без каких-либо флагов, и вы получите папку dump   -  person Ivan Aracki    schedule 26.06.2018


Ответы (18)


Используйте 1_:

$ ./mongodump --host prod.example.com
connected to: prod.example.com
all dbs
DATABASE: log    to   dump/log
        log.errors to dump/log/errors.bson
                713 objects
        log.analytics to dump/log/analytics.bson
                234810 objects
DATABASE: blog    to    dump/blog
        blog.posts to dump/log/blog.posts.bson
                59 objects
DATABASE: admin    to    dump/admin

Источник: http://www.mongodb.org/display/DOCS/Import+Export+Tools

person earldouglas    schedule 02.02.2011
comment
Чтобы поместить результаты в один сжатый файл, см. unix.stackexchange.com/questions/93139/ - person Donal Lafferty; 27.08.2015
comment
На сервере mongodb, в каком месте будет храниться база данных? - person space earth; 15.06.2017
comment
Пожалуйста, перейдите по этой ссылке. stackoverflow.com/questions/44996506 / @космосземля - person Yash Tibrewal; 26.04.2021

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

mongodump --db database_name --collection collection_name

Чтобы импортировать файл резервной копии в mongodb, вы можете использовать следующую команду на своем терминале

mongorestore --db database_name path_to_bson_file
person saimadhu.polamuri    schedule 01.04.2015
comment
Каково значение metadata.json для восстановления? - person Nabin; 08.05.2018
comment
dba.stackexchange.com/questions/113017/ - person Mahdi Esmaeili; 05.08.2020

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

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

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

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

Обновление:
Резервное копирование всех коллекций базы данных в папку даты. Файлы сжаты:

mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`

Или для одного архива:

mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz

Или когда mongodb работает внутри докера:

docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
person Community    schedule 15.07.2013
comment
Это выглядит очень красиво, но как импортировать этот gzip-файл? - person fahim ayat; 14.07.2014
comment
Вам нужно 'gunzip' их, а затем использовать mongorestore - person Meny Issakov; 06.08.2014
comment
пишет: ОШИБКА: не знаю, что делать с файлом! Gunizpped и попробовал `mongorestore --db db_name 'gunzipped file' - person amitchhajer; 10.06.2015
comment
опечатка: -db =› --db - person Vivien; 01.10.2015
comment
В версии 3.2 mongodump или выше для этого можно использовать параметр --gzip: mongodump_manpage и тот же параметр для mongorestore - person Boop; 30.05.2016
comment
@r03, Можно ли автоматически удалять старые резервные копии? Например, удалите резервные копии старше 1 недели. - person Pyrejkee; 28.05.2019
comment
@Pyrejkee: stackoverflow.com/questions/13489398/ - person roeland; 28.05.2019
comment
@ r03, ты случайно не знаешь, почему шаблон для даты date +"%Y-%m-%d" не работает в консоли Windows? - person Pyrejkee; 28.05.2019
comment
@Pyrejkee, лучше задавайте новые вопросы по этим вещам, а не комментарии. (дата на окнах сильно отличается) - person roeland; 28.05.2019

Эта команда сделает дамп данной базы данных в формате json и bson.

mongodump -d <database name> -o <target directory>
person jatinkumar patel    schedule 13.02.2015
comment
А как восстановить все коллекции (файл bson) одной командой? - person Shivam Verma; 23.10.2020
comment
Используйте эту команду для восстановления всех коллекций - mongorestore --db ‹имя базы данных› ‹исходный каталог (файлы bson)› - person SKK; 25.02.2021

Резервное копирование/восстановление MongoDB с указанием времени.

Резервное копирование:

sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`

--db аргумент для имени базы данных

--out аргумент для пути вывода

Восстановить:

sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/

--drop аргумент для удаления базы данных перед восстановлением

Время:

Вы можете использовать crontab для резервного копирования по времени:

sudo crontab -e

Он открывается с помощью редактора (например, nano)

3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`

резервное копирование каждый день в 03:03

В зависимости от размеров вашей базы данных MongoDB у вас может скоро закончиться место на диске из-за слишком большого количества резервных копий. Поэтому также рекомендуется регулярно очищать старые резервные копии или сжимать их. Например, чтобы удалить все резервные копии старше 7 дней, вы можете использовать следующую команду bash:

3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;

удалить все резервные копии старше 7 дней

Удачи.

ссылка: https://www.digitalocean.com/community/tutorials/how-to-back-up-restore-and-migrate-a-mongodb-database-on-ubuntu-14-04

person ShahRokh    schedule 01.01.2019

Существует утилита под названием: mongodump. В командной строке mongo вы можете ввести:

>./mongodump

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

./mongodump --db blog --collection posts

Взгляните на: mongodump

person aditya_gaur    schedule 03.02.2011

Вам нужно открыть командную строку от имени администратора в папке, где установлен ваш Mongo (в моем случае: C:\Program Files\MongoDB\Server\3.4\bin). Если вы хотите сбросить всю базу данных, вы можете просто использовать:

mongodump --db database_name

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

Если вы хотите сбросить только одну коллекцию (например, пользователей):

mongodump  --db database_name --collection users

Если вы хотите сбросить всю коллекцию, кроме пользователей:

mongodump  --db database_name --excludeCollection=users

Также возможен вывод дампа в файл архива:

mongodump --archive=test.archive --db database_name
person Jery    schedule 18.06.2017

Вы можете сбросить базу данных и восстановить ее с помощью следующей команды

mongodb  -d <Your_db_name> -o <path of your folder>

например имя моей базы данных tracking у меня есть дамп в папке дампа

mongodb  -d tracking -o dump

Восстановление дампа

mongorestore -d <databasename> <dum_path>

mongorestore -d tracking  dump/tracking
person Nanhe Kumar    schedule 14.05.2018

Следующая команда подключается к удаленному серверу для создания дампа базы данных:

‹> необязательные параметры используйте их, если они вам нужны

  • host - порт имени хоста
  • имя пользователя порта прослушивания
  • имя пользователя БД БД
  • имя базы данных ssl
  • безопасное соединение
  • вывод в созданную папку с именем

    mongodump --host --port --username --db --ssl --password --out _date+"%Y-%m-%d"

person Michael Horojanski    schedule 18.09.2017
comment
Для тех, кто получает эту ошибку после запуска предложенных выше параметров командной строки синтаксического анализа ошибки запроса: неизвестная опция ssl. Попробуйте выполнить вышеуказанный запрос после удаления --ssl . это сработало для меня. Спасибо. - person Anurag_BEHS; 09.07.2018

Изменить: обновлены команды на основе последней версии MongoDB v4.4.2.

экспортировать

mongodump -d <database name> -o <backup-folder>

импортировать

mongorestore -d <database name> --dir <backup-folder>
person Fayaz    schedule 05.05.2020

команда -->

C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
person arnav    schedule 15.10.2017
comment
Простой и быстрый вариант - person Ignacio Ara; 30.07.2018
comment
Большое спасибо, Арнав, очень приятно. - person HassanSh__3571619; 18.02.2019

Если ваша база данных в локальной системе. Затем вы вводите приведенную ниже команду. для терминала линукс

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME

Если пользователь базы данных и пароль есть, то вы ниже кода.

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD

Это очень хорошо работало в моем терминале Linux.

person Pooja Khatri    schedule 23.04.2020

Дамп Mongo и восстановление с uri на локальный

mongodump --uri "mongodb://USERNAME:PASSWORD@IP_OR_URL:PORT/DB_NAME" --collection COLLECTION_NAME -o LOCAL_URL

Если не указать --collection COLLECTION_NAME, будет создан дамп всей БД.

person smartworld-dm    schedule 24.11.2018

Ниже команда будет работать, чтобы получить дамп mongo db.

монгодамп -д -о

В Windows: попробуйте этот, где c:\mongodump — это расположение файла дампа, он создаст метаданные в формате json и сделает резервную копию в формате bson.

C:\MongoDB\bin>mongodump -d -o c:\mongodump

person Bhasker The Navigator    schedule 28.02.2017

используйте путь для окон, иначе выдается ошибка: позиционные аргументы не разрешены

person yogesh chavan    schedule 02.12.2019

Или вы можете сделать скрипт резервного копирования в Windows, не забудьте добавить Winrar в %PATH%

bin\mongodump --db=COL1 -o D:\BACK\COL1
rar.exe a -ep1 -r COL1.rar COL1
rename COL1.rar "COL1_%date:~10,4%_%date:~7,2%_%date:~4,2%_%time:~0,2%_%time:~3,2%.rar"

#rmdir /s /q COL1 -> don;t run this on your mongodb/ dir !!!!!
person user956584    schedule 02.08.2016

сделайте резервную копию mongodb для конкретной базы данных и удалите резервную копию 7-дневной давности с помощью команды bin sh: -

#!/bin/bash

MONGO_DATABASE="nexgtv_16"
APP_NAME="test"
MONGO_HOST="127.0.0.1"
MONGO_PORT="27017"
TIMESTAMP=`date +%F-%H%M`
MONGODUMP_PATH="/usr/bin/mongodump"
BACKUPS_DIR="/home/mongodbbackups/backups/$APP_NAME"
BACKUP_NAME="$APP_NAME-$TIMESTAMP"
$MONGODUMP_PATH -d $MONGO_DATABASE
mkdir -p $BACKUPS_DIR
mv dump $BACKUP_NAME
tar -zcvf $BACKUPS_DIR/$BACKUP_NAME.tgz $BACKUP_NAME
rm -rf $BACKUP_NAME
find /home/mongodbbackups/backups/test/ -mindepth 1 -mtime +7 -delete
person manoj tiwari    schedule 29.09.2016

mongodump -h имя хоста -u имя_базы-базы -p пароль_базы_данных --db имя_базы_данных --portномер_порта --out/путь/папка

mongodump -h имя хоста -u dbusername -p dbpassword --db dbname --port номер порта --out /path/folder.gz

person Anjankumar H N    schedule 31.03.2017
comment
1. mongodump — это команда для создания дампа монго, а также нам нужны данные о спецификации. 2. -h представляет ваше имя хоста mongodb. 3. -u представляет ваше имя пользователя mongodb. 4. -p представляет пароль. 5. --db представляет имя базы данных, для которой нам нужно сделать дамп. 6. --port представляет порт, на котором работает ваш монго. 7. --out представляет место назначения вашего дампа с именем. - person Anjankumar H N; 31.03.2017