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

163

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

TIMEX
источник
Просто сингл mongodumpбез каких-либо флагов, и вы получите папку дампа
Иван Араки

Ответы:

82

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

$ ./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

earldouglas
источник
4
Чтобы поместить результаты в один сжатый файл, см. Unix.stackexchange.com/questions/93139/…
Донал Лафферти
На каком сервере mongodb будет храниться база данных?
космическая земля
157

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

mongodump --db database_name --collection collection_name

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

mongorestore --db database_name path_to_bson_file
saimadhu.polamuri
источник
2
Какое значение имеет metadata.json для восстановления?
Набин
103

Вы также можете использовать 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
r03
источник
1
говорит: ОШИБКА: не знаю, что делать с файлом! Gunispped и попробовал `mongorestore --db db_name 'файл с архивом'
amitchhajer
2
опечатка: "-db" => "--db"
Вивьен
7
В версии 3.2 mongodumpили выше вы можете использовать --gzipопцию для этого: mongodump_manpage и ту же опцию для mongorestore
Boop
1
@Pyrejkee, лучше задавайте новые вопросы, а не комментарии. (дата на окнах очень разная)
r03
68

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

mongodump -d <database name> -o <target directory>
Jatin
источник
14

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

>./mongodump

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

./mongodump --db blog --collection posts

Посмотрите на: mongodump

aditya_gaur
источник
11

Вам нужно открыть командную строку от имени администратора в папке, где установлен ваш 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
Jery
источник
10

Резервное копирование / восстановление 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

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

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

Shahrokh
источник
8

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

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

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

mongodb  -d tracking -o dump

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

mongorestore -d <databasename> <dum_path>

mongorestore -d tracking  dump/tracking
Наньхэ Кумар
источник
8

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

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

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

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

Михаил Хорожанский
источник
Для тех, кто получает эту ошибку после запуска выше, предложенные параметры командной строки для запроса ошибок: неизвестная опция "ssl". Попробуйте выполнить вышеуказанный запрос после удаления --ssl. это сработало для меня. Спасибо.
Anurag_BEHS
4

cmd ->

C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
arnav
источник
1
Самый простой и быстрый вариант
Игнасио Ара
Большое спасибо, Арнав, очень ценю.
HassanSh__3571619
2

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

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME

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

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

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

Пуджа Хатри
источник
2

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

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

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

mongorestore -d <database name> <backup-folder>
Fayaz
источник
1

Ниже команда будет работать, чтобы взять дамп Монго БД.

mongodump -d -o

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

C: \ MongoDB \ bin> mongodump -d -oc: \ mongodump

Бхаскер Навигатор
источник
0

Или вы можете сделать скрипт резервного копирования в 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 !!!!!
user956584
источник
0

Монго сбросить и восстановить с помощью URI на локальный

mongodump --uri "mongodb: // ИМЯ ПОЛЬЗОВАТЕЛЯ: ПАРОЛЬ @ IP_OR_URL: PORT / DB_NAME" - коллекция COLLECTION_NAME -o LOCAL_URL

Если вы не укажете --colletion COLLECTION_NAME, он сбросит всю БД.

SmartWorld-дм
источник
0

возьмите резервную копию 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
Маной Тивари
источник
0
 Use -v to see progress of backup data
    mongodump -v --db dbname --out /pathforbackup/NewFolderforBackupData

 you can use it for restore also
    mongorestore -v --db dbname --drop /pathforbackup/NewFolderforBackupData/dbname

with multile v like -vvvv you will get more information
Nivrutti
источник
0

используйте «путь» для окон. Иначе это дает ошибку как: позиционные аргументы не допускаются

Йогеш Чаван
источник
-4

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

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

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