MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Ripristina un database MongoDB utilizzando mongorestore

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.