Poche cose :
- In generale cloneCollection viene utilizzato per diverse istanze mongo ma non per copiare sulle stesse istanze.
- Anche se stai usando
v4.2
dovresti smettere di usarecopyDB
&cloneCollection
perché 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.;
bson
tipi. - mongodump crea un binario dove come mongoexport converte
bson
ajson
e ancora mongoimport convertiràjson
abson
durante la scrittura, motivo per cui sono lenti. Puoi utilizzare mongoexport e mongoimport quando desideri analizzare visivamente i dati delle tue raccolte o utilizzarejson
dati 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à
bson
file rispettivi dei loro nomi di raccolta scaricati, quindi è necessario fare riferimento adbName
nel 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.