Какую команду я использую и запускаю?
Используйте 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
Чтобы сбросить базу данных для резервного копирования, вы вызываете эту команду на своем терминале
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
Эта команда сделает дамп данной базы данных в формате json и bson.
mongodump -d <database name> -o <target directory>
Есть утилита под названием: 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
Следующая команда подключается к удаленному серверу для сброса базы данных:
<> необязательные параметры используют их, если они вам нужны
вывод в созданную папку с именем
mongodump --host --port --username --db --ssl --password --out _date+ "% Y-% m-% d"
Вы можете сбросить базу данных и восстановить следующую команду
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
cmd →
Резервное копирование/восстановление 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 дней
Удачи.
Ниже команда будет работать для сброса mongo db.
mongodump -d -o
В Windows: попробуйте это, где c:\mongodump - это расположение файла дампа, Он будет создавать метаданные в json, а резервное копирование в формате bson
C:\MongoDB\bin > mongodump -d -o c:\mongodump
Mongo сбрасывает и восстанавливает с uri к местным
mongodump --uri "mongodb://USERNAME: PASSWORD @IP_OR_URL: PORT/DB_NAME" --collection COLLECTION_NAME -o LOCAL_URL
Если вы не укажете --colletion COLLECTION_NAME, он сбрасывает всю БД.
Возьмите резервную копию 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
Или вы можете сделать резервную копию 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 !!!!!
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
mongodump
без каких-либо флагов, и вы получите папку дампа