Як створити дамп 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.