Какую команду я использую и запускаю?
Как мне создать дамп MongoDB моей базы данных?
Ответы (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
Чтобы сделать дамп вашей базы данных для резервного копирования, вы вызываете эту команду на своем терминале
mongodump --db database_name --collection collection_name
Чтобы импортировать файл резервной копии в mongodb, вы можете использовать следующую команду на своем терминале
mongorestore --db database_name path_to_bson_file
Вы также можете использовать 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
mongodump
или выше для этого можно использовать параметр --gzip
: mongodump_manpage и тот же параметр для mongorestore
- person Boop; 30.05.2016
date +"%Y-%m-%d"
не работает в консоли Windows?
- person Pyrejkee; 28.05.2019
Эта команда сделает дамп данной базы данных в формате json и bson.
mongodump -d <database name> -o <target directory>
Резервное копирование/восстановление 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 дней
Удачи.
Существует утилита под названием: mongodump. В командной строке mongo вы можете ввести:
>./mongodump
Вышеупомянутое создаст дамп всех баз данных на вашем локальном хосте. Чтобы сделать дамп одной коллекции, используйте:
./mongodump --db blog --collection posts
Взгляните на: mongodump
Вам нужно открыть командную строку от имени администратора в папке, где установлен ваш 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
Вы можете сбросить базу данных и восстановить ее с помощью следующей команды
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
Следующая команда подключается к удаленному серверу для создания дампа базы данных:
‹> необязательные параметры используйте их, если они вам нужны
- host - порт имени хоста
- имя пользователя порта прослушивания
- имя пользователя БД БД
- имя базы данных ssl
- безопасное соединение
вывод в созданную папку с именем
mongodump --host --port --username --db --ssl --password --out _date+"%Y-%m-%d"
Изменить: обновлены команды на основе последней версии MongoDB v4.4.2.
экспортировать
mongodump -d <database name> -o <backup-folder>
импортировать
mongorestore -d <database name> --dir <backup-folder>
команда -->
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
Если ваша база данных в локальной системе. Затем вы вводите приведенную ниже команду. для терминала линукс
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
Если пользователь базы данных и пароль есть, то вы ниже кода.
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
Это очень хорошо работало в моем терминале Linux.
Дамп Mongo и восстановление с uri на локальный
mongodump --uri "mongodb://USERNAME:PASSWORD@IP_OR_URL:PORT/DB_NAME" --collection COLLECTION_NAME -o LOCAL_URL
Если не указать --collection COLLECTION_NAME, будет создан дамп всей БД.
Ниже команда будет работать, чтобы получить дамп mongo db.
монгодамп -д -о
В Windows: попробуйте этот, где c:\mongodump — это расположение файла дампа, он создаст метаданные в формате json и сделает резервную копию в формате bson.
C:\MongoDB\bin>mongodump -d -o c:\mongodump
используйте путь для окон, иначе выдается ошибка: позиционные аргументы не разрешены
Или вы можете сделать скрипт резервного копирования в 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 !!!!!
сделайте резервную копию 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
mongodump -h имя хоста -u имя_базы-базы -p пароль_базы_данных --db имя_базы_данных --portномер_порта --out/путь/папка
mongodump -h имя хоста -u dbusername -p dbpassword --db dbname --port номер порта --out /path/folder.gz
mongodump
без каких-либо флагов, и вы получите папку dump - person Ivan Aracki   schedule 26.06.2018