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

109

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

  • 0
    Просто один mongodump без каких-либо флагов, и вы получите папку дампа
Теги:
database

15 ответов

65
Лучший ответ

Используйте 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

  • 3
    Чтобы поместить результаты в один сжатый файл, см. Unix.stackexchange.com/questions/93139/…
  • 0
    На каком сервере mongodb будет храниться база данных?
106

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

mongodump --db database_name --collection collection_name

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

mongorestore --db database_name path_to_bson_file
  • 0
    Какое значение имеет metadata.json для восстановления?
59

Вы также можете использовать 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
  • 0
    Это выглядит очень хорошо, но как вы импортируете этот файл gzip?
  • 0
    Вы должны «убрать» их, а затем использовать mongorestore
Показать ещё 3 комментария
50

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

mongodump -d <database name> -o <target directory>
  • 0
    Только это у меня сработало
12

Есть утилита под названием: 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
7

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

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

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

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

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

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

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
2

cmd →

C:\Program Files\MongoDB\Server\3.2\bin > mongodump.exe --db Dintest

  • 1
    Простой и быстрый вариант
  • 0
    Большое спасибо, Арнав, очень ценю.
1

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

1

Ниже команда будет работать для сброса mongo db.

mongodump -d -o

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

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

0

Mongo сбрасывает и восстанавливает с uri к местным

mongodump --uri "mongodb://USERNAME: PASSWORD @IP_OR_URL: PORT/DB_NAME" --collection 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

Или вы можете сделать резервную копию script в 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 !!!!!
-4

mongodump -h имя-хоста -u dbusername -p dbpassword -db имя -bb -port portnumber -out/путь/папка

mongodump -h имя хоста -u dbusername -p dbpassword -db имя -bb -port portnumber --out/path/folder.gz

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню