mongodump / mongorestore în MongoDB & NoSQL

Instrumente în linie de comandă Database Tools 100.0

mongodump face o copie de siguranță binară (BSON) a bazelor de date; mongorestore o încarcă înapoi, pe același server sau pe altul.

Sintaxă
mongodump [--uri=<uri>] [--db=<baza>] [--collection=<col>] [--out=<dir> | --archive=<fisier>] [--gzip]
mongorestore [--uri=<uri>] [--drop] [--nsFrom=<ns> --nsTo=<ns>] [<dir> | --archive=<fisier>] [--gzip]

Ce face mongodump / mongorestore

mongodump citește datele și le scrie în fișiere BSON, câte unul pe colecție, plus un fișier .metadata.json cu indexurile și opțiunile colecției. Implicit scrie în directorul dump/; cu --archive pune totul într-un singur fișier, iar --gzip comprimă. Uneltele fac parte din pachetul separat MongoDB Database Tools (versiunile 100.x), instalat lângă server sau separat.

mongorestore încarcă o copie făcută cu mongodump. Cu --drop șterge întâi colecțiile existente cu același nume, iar cu --nsFrom/--nsTo poți restaura sub alt nume (de exemplu în baza magazin_test). Indexurile sunt reconstruite din metadate.

Parametri

Parametru Descriere
--uri Șirul de conectare, de exemplu mongodb://user@host:27017/?authSource=admin.
--db / --collection Doar o bază de date / o colecție.
--out / --archive Directorul de ieșire / un singur fișier arhivă.
--gzip Comprimă (la dump) sau citește comprimat (la restore).
--drop La restore: șterge colecțiile existente înainte.
--nsFrom / --nsTo La restore: redenumește baze sau colecții (acceptă *).

Ce returnează

Mesaje de jurnal în terminal, cu numărul de documente copiate și restaurate.

Exemple

Exemplul 1: Copia de siguranță a bazei magazin

Fiecare colecție devine un fișier .bson în dump/magazin/.

mongodump --db=magazin --out=dump

Ieșire în terminal

2026-10-25T12:30:01.123+0300	writing magazin.comenzi to dump/magazin/comenzi.bson
2026-10-25T12:30:01.130+0300	writing magazin.clienti to dump/magazin/clienti.bson
2026-10-25T12:30:01.141+0300	done dumping magazin.clienti (3 documents)
2026-10-25T12:30:01.152+0300	done dumping magazin.comenzi (1520 documents)

Exemplul 2: Un singur fișier comprimat

Potrivit pentru copii de noapte trimise pe alt server.

mongodump --uri='mongodb://backup@10.0.0.5:27017/?authSource=admin' --db=magazin --archive=magazin-2026-10-25.gz --gzip

Ieșire în terminal

Enter password for mongo user:
2026-10-25T03:00:02.410+0300	writing magazin.comenzi to archive 'magazin-2026-10-25.gz'
2026-10-25T03:00:02.415+0300	writing magazin.clienti to archive 'magazin-2026-10-25.gz'
2026-10-25T03:00:02.437+0300	done dumping magazin.clienti (3 documents)
2026-10-25T03:00:02.489+0300	done dumping magazin.comenzi (1520 documents)

Exemplul 3: Restaurare într-o bază de test

Datele din magazin ajung în magazin_test, iar baza originală rămâne neatinsă. Fragment din final.

mongorestore --nsFrom='magazin.*' --nsTo='magazin_test.*' --drop dump/

Ieșire în terminal

2026-10-25T12:35:10.140+0300	1523 document(s) restored successfully. 0 document(s) failed to restore.

Greșeli frecvente

  • --drop șterge colecțiile din destinație fără să mai întrebe. Verifică --uri și --nsTo înainte să rulezi pe producție.
  • Pe un replica set ocupat, o copie mongodump fără --oplog nu e un instantaneu consistent; pentru baze mari, folosește snapshot-uri de disc sau backup-ul din Atlas / Ops Manager.
  • Nu pune parola în linia de comandă (rămâne în istoricul shell-ului); lasă-o să fie cerută sau folosește un fișier de configurare cu --config.

Comenzi înrudite

  • mongoimport / mongoexport: mongoimport încarcă date din fișiere JSON sau CSV într-o colecție; mongoexport scoate documentele unei colecții în JSON sau CSV.
  • drop() / dropDatabase(): drop() șterge definitiv o colecție cu documentele și indexurile ei; dropDatabase() șterge toată baza curentă.
  • show dbs / use: În mongosh, show dbs listează bazele de date, use schimbă baza curentă, iar show collections arată colecțiile ei.