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


Ответы:


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


4
Чтобы поместить результаты в один сжатый файл, см. Unix.stackexchange.com/questions/93139/…
Донал Лафферти

На каком сервере mongodb будет храниться база данных?
космическая земля

157

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

mongodump --db database_name --collection collection_name

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

mongorestore --db database_name path_to_bson_file

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

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>

14

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

>./mongodump

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

./mongodump --db blog --collection posts

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


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

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


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


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>

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 !!!!!

0

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

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

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


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

0

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


-4

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

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


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