Jak utworzyć zrzut mojej bazy danych MongoDB?

163

Jakiego polecenia używam i uruchamiam?

TIMEX
źródło
Tylko jeden mongodumpbez flag i otrzymujesz folder zrzutu
Ivan Aracki

Odpowiedzi:

82

Zastosowanie 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

Źródło: http://www.mongodb.org/display/DOCS/Import+Export+Tools

earldouglas
źródło
4
Aby umieścić wyniki w jednym skompresowanym pliku, zobacz unix.stackexchange.com/questions/93139/ ...
Donal Lafferty
Na serwerze mongodb w którym miejscu będzie przechowywana baza danych?
kosmiczna ziemia
157

Aby zrzucić bazę danych w celu wykonania kopii zapasowej, wywołaj to polecenie na swoim terminalu

mongodump --db database_name --collection collection_name

Aby zaimportować plik kopii zapasowej do mongodb, możesz użyć następującego polecenia na swoim terminalu

mongorestore --db database_name path_to_bson_file
saimadhu.polamuri
źródło
2
Jakie jest znaczenie pliku metadata.json dla przywracania?
Nabin
103

Możesz również użyć gzipdo tworzenia kopii zapasowej jednej kolekcji i kompresowania kopii zapasowej w locie:

mongodump --db somedb --collection somecollection --out - | gzip > collectiondump.gz

lub z datą w nazwie pliku:

mongodump --db somedb --collection somecollection --out - | gzip > dump_`date "+%Y-%m-%d"`.gz

Aktualizacja:
wykonaj kopię zapasową wszystkich kolekcji bazy danych w folderze daty. Pliki są zgzipowane:

mongodump --db somedb --gzip --out /backups/`date +"%Y-%m-%d"`

Lub dla pojedynczego archiwum:

mongodump --db somedb --gzip --archive > dump_`date "+%Y-%m-%d"`.gz

Lub gdy mongodb działa wewnątrz dockera:

docker exec <CONTAINER> sh -c 'exec mongodump --db somedb --gzip --archive' > dump_`date "+%Y-%m-%d"`.gz
r03
źródło
1
mówi: BŁĄD: nie wiem, co zrobić z plikiem! Gunizpped i spróbowałem `mongorestore --db db_name 'gunzipped file'
amitchhajer
2
typo: "-db" => "--db"
Vivien
7
W wersji 3.2 mongodumplub wyższej możesz użyć --gzipopcji, aby to zrobić: mongodump_manpage i ta sama opcja dla mongorestore
Boop
1
@Pyrejkee, lepiej zadawaj nowe pytania dotyczące tych rzeczy zamiast komentować. (data na windows jest zupełnie inna)
r03
68

To polecenie zrobi zrzut podanej bazy danych w formacie json i bson.

mongodump -d <database name> -o <target directory>
jatin
źródło
14

Istnieje narzędzie o nazwie: mongodump W wierszu poleceń mongo możesz wpisać:

>./mongodump

Powyższe spowoduje utworzenie zrzutu wszystkich baz danych na twoim hoście lokalnym. Aby zrobić zrzut pojedynczej kolekcji, użyj:

./mongodump --db blog --collection posts

Zobacz: mongodump

aditya_gaur
źródło
11

Musisz otworzyć wiersz polecenia jako administrator w folderze, w którym jest zainstalowane Twoje Mongo (w moim przypadku: C: \ Program Files \ MongoDB \ Server \ 3.4 \ bin). Jeśli chcesz zrzucić całą bazę danych, możesz po prostu użyć:

mongodump --db database_name

Masz również możliwość zrzucenia tylko niektórych kolekcji lub wszystkich kolekcji oprócz niektórych.

Jeśli chcesz zrzucić tylko jedną kolekcję (na przykład użytkowników):

mongodump  --db database_name --collection users

Jeśli chcesz zrzucić całą kolekcję oprócz użytkowników:

mongodump  --db database_name --excludeCollection=users

Możliwe jest również zapisanie zrzutu do pliku archiwum:

mongodump --archive=test.archive --db database_name
Jery
źródło
10

Kopia zapasowa / przywracanie Mongodb z synchronizacją.

Utworzyć kopię zapasową:

sudo mongodump --db db_name --out /path_of_your_backup/`date +"%m-%d-%y"`

--db argument dla nazwy bazy danych

--out argument dla ścieżki wyjścia

Przywracać:

sudo mongorestore --db db_name --drop /path_of_your_backup/01-01-19/db_name/

--drop argument za usunięciem bazy danych przed przywróceniem

Wyczucie czasu:

Możesz użyć crontab do tworzenia kopii zapasowych czasu:

sudo crontab -e

Otwiera się w edytorze (np. Nano)

3 3 * * * mongodump --out /path_of_your_backup/`date +"%m-%d-%y"`

kopia zapasowa codziennie o 03:03

W zależności od rozmiarów bazy danych MongoDB może wkrótce zabraknąć miejsca na dysku z zbyt dużą liczbą kopii zapasowych. Dlatego też zaleca się regularne czyszczenie starych kopii zapasowych lub ich kompresję. Na przykład, aby usunąć wszystkie kopie zapasowe starsze niż 7 dni, możesz użyć następującego polecenia bash:

3 1 * * * find /path_of_your_backup/ -mtime +7 -exec rm -rf {} \;

usuń wszystkie kopie zapasowe starsze niż 7 dni

Powodzenia.

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

ShahRokh
źródło
8

Możesz zrzucić bazę danych i przywrócić ją za pomocą poniższego polecenia

mongodb  -d <Your_db_name> -o <path of your folder>

na przykład moja nazwa bazy danych śledzi, mam zrzut w folderze zrzutu

mongodb  -d tracking -o dump

Przywracam zrzut

mongorestore -d <databasename> <dum_path>

mongorestore -d tracking  dump/tracking
Nanhe Kumar
źródło
8

Następujące polecenie połącz się ze zdalnym serwerem, aby zrzucić bazę danych:

<> opcjonalne parametry używają ich, jeśli ich potrzebujesz

  • host - port nazwy hosta
  • nazwa użytkownika portu nasłuchiwania
  • nazwa użytkownika db db
  • nazwa bazy danych ssl
  • bezpieczne połączenie
  • wyjście do utworzonego folderu o nazwie

    mongodump --host --port --username --db --ssl --password --out _date + "% Y-% m-% d"

Michael Horojanski
źródło
Dla tych, którzy otrzymują ten błąd po uruchomieniu powyższego sugerowanego zapytania - błąd podczas analizowania opcji wiersza poleceń: nieznana opcja "ssl". Spróbuj uruchomić powyższe zapytanie po usunięciu --ssl. to działało dla mnie. dzięki.
Anurag_BEHS,
4

cmd ->

C:\Program Files\MongoDB\Server\3.2\bin>mongodump.exe --db Dintest
arnav
źródło
1
Łatwa i najszybsza opcja
Ignacio Ara
Wielkie dzięki Arnav, naprawdę doceniany.
HassanSh__3571619
2

Jeśli twoja baza danych w systemie lokalnym. Następnie wpisujesz poniższe polecenie. dla terminala Linux

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME

Jeśli użytkownik bazy danych i hasło są tam, to poniżej kod.

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

To działało bardzo dobrze w moim terminalu Linux.

Pooja Khatri
źródło
1

Poniższe polecenie będzie działać, aby zrobić zrzut pliku mongo db.

mongodump -d -o

W systemie Windows: wypróbuj ten, w którym c: \ mongodump to lokalizacja pliku zrzutu, utworzy metadane w formacie json i kopia zapasowa w formacie bson

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

Bhasker The Navigator
źródło
1

eksportować

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

importować

mongorestore -d <database name> <backup-folder>
Fayaz
źródło
0

Lub możesz utworzyć skrypt kopii zapasowej w systemie Windows, pamiętaj, aby dodać Winrar do% 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 !!!!!
user956584
źródło
0

Mongo zrzuca i przywraca z uri do lokalnego

mongodump --uri "mongodb: // NAZWA UŻYTKOWNIKA: HASŁO @ IP_OR_URL: PORT / DB_NAME" --collection NAZWA KOLEKCJI -o LOKALNY_URL

Jeśli nie określisz --colletion NAZWA KOLEKCJI, zrzuci on całą bazę danych.

smartworld-dm
źródło
0

wykonaj kopię zapasową mongodb dla konkretnej bazy danych i usuń kopię sprzed 7 dni za pomocą polecenia 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
manoj tiwari
źródło
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
Nivrutti
źródło
0

użyj „ścieżki” dla okien. W przeciwnym razie zwraca błąd jako: argumenty pozycyjne są niedozwolone

yogesh chavan
źródło
-4

mongodump -h nazwa_hosta -u nazwa_dba -p -p hasło_db --db nazwa_bazy --port numer portu --out / ścieżka / folder

mongodump -h nazwa_hosta -u nazwa_dB -p -p hasło_db --db nazwa_bazy --port numer portu --out / ścieżka/folder.gz

Anjankumar HN
źródło
1. mongodump - to polecenie do utworzenia zrzutu mongo wraz z potrzebą wprowadzenia informacji o specyfikacji. 2. -h reprezentuje twoją nazwę hosta mongodb. 3. -u reprezentuje twoją nazwę użytkownika mongodb. 4. -p reprezentuje hasło. 5. --db reprezentuje nazwę bazy danych, której potrzebujemy do zrzutu. 6. --port reprezentuje port, na którym działa Twoje mongo. 7. --out reprezentuje miejsce docelowe twojego zrzutu z nazwą.
Anjankumar HN