Відповіді:
Використання 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
Оновлення:
резервне копіювання всіх колекцій бази даних у папці дат. Файли gziped:
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
Вищенаведене створить дамп усіх баз даних у вашому localhost. Щоб зробити дамп із однієї колекції, використовуйте:
./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
аргумент для падіння databse перед відновленням
Час виконання:
Ви можете використовувати 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 днів
Щасти.
Ви можете скинути базу даних і відновити за допомогою команди нижче
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 --користувач --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.
Знизу команда працюватиме над тим, щоб взяти скидання mongo db.
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 !!!!!
Монго скидає і відновлює з урі до місцевих
mongodump --uri "mongodb: // USERNAME: PASSWORD @ IP_OR_URL: PORT / DB_NAME" --колекція COLLECTION_NAME -o LOCAL_URL
Якщо не вказати --colletion COLLECTION_NAME, він скидає весь БД.
візьміть резервну копію mongodb для конкретного db та видаліть 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
використовувати "шлях" для Windows. В іншому випадку вона дає помилку як: позиційні аргументи не дозволені
mongodump -h ім'я хоста -u dbusername -p dbpassword - db dbname --port Portnumber --out / path / folder
mongodump -h ім'я хоста -u dbusername -p dbpassword - db dbname --port Portnumber --out /path/folder.gz
mongodump
без жодних прапорів, і ви отримуєте дамп- папку