Se hai eseguito il backup di un database utilizzando mongodump
utilità, puoi ripristinarlo utilizzando il mongorestore
utilità.
Il mongorestore
l'utilità carica i dati da un dump di database binario creato da mongodump
o lo standard input in un mongod
o mongos
esempio.
Cerca gli strumenti del database MongoDB
Il mongorestore
l'utilità fa parte del pacchetto MongoDB Database Tools. I MongoDB Database Tools sono una suite di utilità da riga di comando per lavorare con MongoDB.
Se non sei sicuro di avere MongoDB Database Tools/mongorestore
installato. Prova a eseguire il seguente comando nel terminale o nel prompt dei comandi per verificare:
mongorestore --version
Se non lo hai, puoi utilizzare le istruzioni di installazione sul sito Web di MongoDB per installarlo sul tuo sistema.
Dove eseguire i comandi?
Devi eseguire mongorestore
comandi dalla riga di comando del sistema (ad es. una nuova finestra del terminale o del prompt dei comandi).
Non eseguirli da mongos
guscio.
Ripristina tutti i database da una directory
Il comando seguente ripristina tutti i database di cui è stato eseguito il backup nel dump/
directory:
mongorestore dump/
Questo esempio ripristina i database nell'istanza locale in esecuzione sulla porta predefinita 27017. Lo sappiamo perché non abbiamo fornito alcun host, porta, informazioni di autenticazione e così via.
Ripristina un database specifico
Puoi usare il --nsInclude
parametro per specificare un database da ripristinare.
Esempio:
mongorestore --nsInclude="PetHotel.*" dump/
In questo caso, abbiamo ripristinato il PetHotel
Banca dati. Abbiamo ripristinato tutte le raccolte, perché abbiamo utilizzato un carattere jolly asterisco (*
) per specificare tutte le raccolte.
Ripristina una raccolta specifica
Puoi anche usare --nsInclude
parametro per specificare una raccolta da ripristinare.
Esempio:
mongorestore --nsInclude="PetHotel.pets" dump/
Questo esempio ripristina la raccolta di animali da PetHotel
Banca dati. Se il database non esiste, viene creato con un'unica raccolta (pets
).
Questo esempio è quasi identico all'esempio precedente, tranne per il fatto che invece di utilizzare il carattere jolly asterisco (*
) per specificare tutte le raccolte, abbiamo specificato esplicitamente la raccolta che vogliamo ripristinare.
Rinomina una raccolta
Puoi usare il --nsFrom
e --nsTo
parametri per specificare un nuovo nome per la raccolta.
Esempio:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' dump/
Questo rinomina i pets
ritiro a pets2
.
Nota che il codice precedente ripristina anche tutti gli altri database e raccolte nel dump/
directory. L'unica differenza è che gli pets
la raccolta viene ripristinata come pets2
.
Se desideri ripristinare solo una singola raccolta (e rinominarla nel processo), utilizza --nsInclude
parametro.
Esempio:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHotel.pets2' --nsInclude="PetHotel.pets" dump/
Rinomina un database
È possibile utilizzare lo stesso concetto per rinominare un database. Usa semplicemente il --nsFrom
e --nsTo
parametri per specificare un nuovo nome per il database.
Esempio:
mongorestore --nsFrom='PetHotel.pets' --nsTo='PetHouse.pets' --nsInclude="PetHouse.*" dump/
In questo caso ho rinominato il PetHotel
database a PetHouse
.
Nota che il --nsInclude
il parametro specifica il nuovo nome del database. Inoltre, utilizzo il carattere jolly asterisco (*
) per ripristinare tutte le raccolte in quel database.
Raccolte escluse
Puoi usare --nsExclude
parametro per specificare una raccolta da escludere dal processo di ripristino.
Esempio:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" dump/
Questo esempio ripristina tutte le raccolte in PetHotel
database ad eccezione dei dogs
raccolta.
Puoi usare --nsExclude
più volte per escludere più raccolte dal processo di ripristino.
Esempio:
mongorestore --nsInclude="PetHotel.*" --excludeCollection="dogs" --excludeCollection="employees" dump/
Controllo accessi/Autenticazione
Gli esempi precedenti sono stati eseguiti sulla macchina locale utilizzando la porta predefinita. Ciò significava che siamo stati in grado di eseguire mongodump
senza specificare cose come --host
, --port
, --username
, ecc.
Ecco un esempio che utilizza questi parametri per autenticarsi come homer
:
mongorestore --host=myhost.example.com --port=37017 --username=homer --authenticationDatabase=admin /backups/mongodump-2020-12-30
Avremmo potuto anche usare il --password
parametro, ma non l'abbiamo fatto. Se passi --user
ma non --password
, ti verrà richiesta la password.
Ripristina da file compressi
Puoi usare il --gzip
parametro da ripristinare da file compressi o flusso di dati creato da mongodump --gzip
.
Esempio:
mongorestore --gzip --nsInclude="krankykranes.*" dump3/
Modalità silenziosa
Puoi usare il --quiet
parametro per limitare l'output nella finestra del terminale o del prompt dei comandi.
mongorestore --quiet
Senza usarlo, probabilmente vedrai un grande elenco di visualizzazioni, raccolte, ecc. che vengono ripristinate.
Modalità dettagliata
D'altra parte, puoi usare il --verbose
o -v
parametri da aumentare l'output nella finestra del Terminale o del prompt dei comandi.
mongorestore --verbose
Puoi aumentare la verbosità ripetendo il -v
formare più volte.
Esempio:
mongorestore -vvvv
Ulteriori informazioni su mongodump
Il mongorestore
utility accetta molti altri parametri utili e ci sono anche vari fattori da considerare quando lo si utilizza come parte di una strategia di backup e ripristino.
Vedi il mongorestore
documentazione sul sito Web MongoDB per ulteriori informazioni.
Altre opzioni
mongodump
e mongorestore
sono strumenti semplici ed efficienti per il backup e il ripristino di piccole distribuzioni MongoDB, ma non sono ideali per acquisire backup di sistemi più grandi.
Vedere Metodi di backup MongoDB sul sito Web MongoDB per altri metodi per il backup e il ripristino dei database MongoDB.