Ci sono vari modi per esportare database di mongodb da un server all altro, me quello che ho trovato più semplice da usare è il seguente:
Connettersi al server sorgente:
ssh sourceserver.com
Eseguire i seguenti comandi dalla home:
mkdir dumps mongodump --host 127.0.0.1 --port 27017 --db databaseName --out dumps
Adesso nella cartella dumps troverete una cartella chiamata “databaseName” che a sua volta contiene vari file corrispondenti a tutte le collection che si trovano nel db appena copiato.
In seguito connettersi al server destinazione:
ssh destinationserver.com
Eseguire i seguenti comandi dalla home:
mkdir dumps cd dumps mkdir databaseName scp user@sourceserver.com:~/dumps/databasName/* databaseName/ mongorestore --host 127.0.0.1 --port 27017 databaseName
Questo è tutto. Dopo queste operazioni dovreste trovare il nuovo db in mongo.
Per verificare:
mongo show dbs use databaseName show collections
Nel caso riceveste il seguente errore:
Failed global initialization: BadValue Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly.
Inserire:
export LC_ALL="en_US.UTF-8"
Per rispristinare un unica collection dal backup:
Dalla cartella dumps
mongorestore --host 127.0.0.1 --db databaseName --collection collName databaseName/collName.bson
Fine
So, what do you think ?