Poche cose :
- In generale cloneCollection viene utilizzato per diverse istanze mongo ma non per copiare sulle stesse istanze.
- Anche se stai usando
v4.2dovresti smettere di usarecopyDB&cloneCollectionperché sono obsoleti compatibilità-con-v4.2 e inizia a utilizzare mongodump e mongorestore o mongoexport &mongoimport . -
Suggerirei di utilizzare mongodump &mongorestore :
- Causa mongodump conserverebbe i tipi di dati di MongoDB, ad es.;
bsontipi. - mongodump crea un binario dove come mongoexport converte
bsonajsone ancora mongoimport convertiràjsonabsondurante la scrittura, motivo per cui sono lenti. Puoi utilizzare mongoexport e mongoimport quando desideri analizzare visivamente i dati delle tue raccolte o utilizzarejsondati per qualsiasi altro scopo.
- Causa mongodump conserverebbe i tipi di dati di MongoDB, ad es.;
-
Puoi eseguire sotto lo script nella shell
declare - a collections = ("collectionName1" "collectionName2") for i in "${collections[@]}" do echo "$i" mongodump --host "All-shards" --username=uname --password password --ssl --authenticationDatabase admin --db dbname --collection "$i" mongorestore --host=host-shard-name --port=27017 --username=uname --password=psswrd --ssl --authenticationDatabase=admin --db=dbname --collection= "$i" ./dump/dbName/"$i".bson; done
Per utilizzare mongodump , è necessario eseguire mongodump su un'istanza mongod o mongos in esecuzione. Quindi questi comandi vengono eseguiti aspettandosi che mongo sia installato correttamente e che l'impostazione del percorso sia buona, in caso contrario puoi passare alla cartella mongo ed eseguire come ./mongodump &./mongorestore . Lo script sopra sarà utile se si desidera eseguire il backup di più raccolte, è necessario specificare alcune cose nello script come:
-
mongodump--host "All-shards"-> Qui devi specificare tutti gli shard se il tuo MongoDB è un set di repliche, in caso contrario puoi specificarelocalhost:27017. -
mongorestore --host=host-shard-name-> Devi specificare uno shard del set di repliche, altrimenti il tuolocalhost, Poche cose qui possono essere opzionali--ssl,--username,--password. - Quindi mongodump creerà una cartella denominata dump per la prima volta che avrà le sottocartelle con dbNames e ogni sottocartella avrà
bsonfile rispettivi dei loro nomi di raccolta scaricati, quindi è necessario fare riferimento adbNamenel comando di ripristino e il nome della raccolta verranno presi dalla variabilei->./dump/dbName/"$i".bson
Nota : MongoDB v3.2 è così vecchio e nel servizio MongoDB basato su cloud Mongo-atlas
ha già raggiunto la fine del ciclo di vita, quindi aggiorna il prima possibile. Se stai cercando un'istanza mongo gratuita o stai iniziando con MongoDB, puoi provare Atlas.