Як створити дамп MongoDB моєї бази даних?


Відповіді:


82

Використання 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


4
Щоб розмістити результати в одному стисненому файлі, див. Unix.stackexchange.com/questions/93139/…
Donal Lafferty,

На якому сервері mongodb, на якому місці буде зберігатися база даних?
космічна земля

157

Для скидання бази даних для резервного копіювання ви викликаєте цю команду на своєму терміналі

mongodump --db database_name --collection collection_name

Щоб імпортувати файл резервного копіювання в mongodb, ви можете скористатися наступною командою на своєму терміналі

mongorestore --db database_name path_to_bson_file

2
Яке значення metadata.json для відновлення?
Набін

103

Ви також можете використовувати 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

1
каже: ПОМИЛКА: не знаю, що робити з файлом! Визнаний і випробуваний `mongorestore --db db_name 'gunzipped file'
amitchhajer

2
typo: "-db" => "--db"
Vivien

7
У версії 3.2 mongodumpабо новішої версії ви можете скористатись --gzipопцією: mongodump_manpage і такий же варіант для mongorestore
Boop


1
@Pyrejkee, краще ставити нові запитання щодо цих речей замість коментаря. (дата на Windows дуже різна)
r03

68

Ця команда зробить дамп даної бази даних у форматі json та bson.

mongodump -d <database name> -o <target directory>

14

Існує утиліта під назвою: mongodump У командному рядку mongo можна ввести:

>./mongodump

Вищенаведене створить дамп усіх баз даних у вашому localhost. Щоб зробити дамп із однієї колекції, використовуйте:

./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

10

Резервне копіювання / відновлення 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 днів

Щасти.

ref: https://www.digitalocean.com/community/tutorials/how-to-back-up-restore-and-migrate-a-mongodb-database-on-ubuntu-14-04


8

Ви можете скинути базу даних і відновити за допомогою команди нижче

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

8

Наступна команда підключиться до віддаленого сервера, щоб скинути базу даних:

<> необов'язкові парами використовують їх, якщо вони потрібні

  • хост - порт імені хоста
  • ім'я користувача порту прослуховування
  • ім'я користувача db db
  • db назва ssl
  • безпечне з'єднання
  • вихід у створену папку з ім'ям

    mongodump --host --port --користувач --db --ssl --password --out _date + "% Y-% m-% d"


Для тих, хто отримує цю помилку після запуску вище запропонованих параметрів командного рядка запит - помилка: невідомий варіант "ssl". Спробуйте запустити над запитом після видалення --ssl. він працював на мене. Дякую.
Anurag_BEHS


2

Якщо ваша база даних в локальній системі. Потім ви вводите команду нижче. для терміналу Linux

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME

Якщо у вас є користувач бази даних та пароль, то ви нижче коду.

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD

Це дуже добре працювало в моєму терміналі Linux.


1

Знизу команда працюватиме над тим, щоб взяти скидання mongo db.

mongodump -d -o

У Windows: спробуйте цю, де c: \ mongodump - це дамп-файл, він створить метадані в json та створить резервну копію у форматі bson

C: \ MongoDB \ bin> mongodump -d -oc: \ mongodump


1

експортувати

mongodump -d <database name> <backup-folder>

імпортувати

mongorestore -d <database name> <backup-folder>

0

Або ви можете створити резервний скрипт для 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 !!!!!

0

Монго скидає і відновлює з урі до місцевих

mongodump --uri "mongodb: // USERNAME: PASSWORD @ IP_OR_URL: PORT / DB_NAME" --колекція COLLECTION_NAME -o LOCAL_URL

Якщо не вказати --colletion COLLECTION_NAME, він скидає весь БД.


0

візьміть резервну копію 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

0
 Use -v to see progress of backup data
    mongodump -v --db dbname --out /pathforbackup/NewFolderforBackupData

 you can use it for restore also
    mongorestore -v --db dbname --drop /pathforbackup/NewFolderforBackupData/dbname

with multile v like -vvvv you will get more information

0

використовувати "шлях" для Windows. В іншому випадку вона дає помилку як: позиційні аргументи не дозволені


-4

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


1. mongodump - це команда для створення дампу mongo, а також нам потрібна інформація про специфікацію. 2. -h представляє ваше ім'я хоста mongodb. 3. -u представляє ваше ім'я користувача mongodb. 4. -p являє собою словослов. 5. --db представляє ім'я бази даних, що нам потрібно взяти дамп. 6. --port представляє порт, на якому працює ваш монго. 7. --out представляє призначення вашого дампа з ім'ям.
Anjankumar HN
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.