Ответы:
Используйте 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
mongodump
или выше вы можете использовать --gzip
опцию для этого: mongodump_manpage и ту же опцию для mongorestore
Существует утилита под названием: 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 с учетом времени.
Резервное копирование:
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 дней
Удачи.
Вы можете сбросить базу данных и восстановить ее с помощью команды ниже
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
Следующая команда подключиться к удаленному серверу для выгрузки базы данных:
<> необязательные параметры используют их, если они вам нужны
вывод в созданную папку с именем
mongodump --host --port --username --db --ssl --password --out _date + "% Y-% m-% d"
cmd ->
C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
Если ваша база данных в локальной системе. Затем вы вводите команду ниже. для терминала Linux
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME
Если есть пользователь базы данных и пароль, то вы ниже код.
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
Это очень хорошо работало в моем терминале Linux.
Ниже команда будет работать, чтобы взять дамп Монго БД.
mongodump -d -o
В Windows: попробуйте этот файл, где c: \ mongodump - это расположение файла дампа. Он создаст метаданные в формате json и создаст резервную копию в формате bson.
C: \ MongoDB \ bin> mongodump -d -oc: \ 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 !!!!!
Монго сбросить и восстановить с помощью URI на локальный
mongodump --uri "mongodb: // ИМЯ ПОЛЬЗОВАТЕЛЯ: ПАРОЛЬ @ IP_OR_URL: PORT / DB_NAME" - коллекция 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
используйте «путь» для окон. Иначе это дает ошибку как: позиционные аргументы не допускаются
mongodump -h имя хоста -u имя dbuser -p dbpassword --db имя_базы - номер порта порта --out / путь / папка
mongodump -h имя хоста -u dbusername -p dbpassword --db dbname - номер порта порта --out /path/folder.gz
mongodump
без каких-либо флагов, и вы получите папку дампа