Några saker :
- I allmänhet cloneCollection används för olika mongo-instanser men inte för att kopiera på samma instanser.
- Också om du använder
v4.2
du bör sluta användacopyDB
&cloneCollection
eftersom de är utfasade kompatibilitet-med-v4.2 &börja använda mongodump och mongorestore eller mongoexport &mongoimport . -
Jag skulle föreslå att du använder mongodump &mongorestore :
- Orsak mongodump skulle bevara MongoDB:s datatyper, dvs.;
bson
typer. - mongodump skapar en binär där som mongoexport skulle konvertera
bson
tilljson
&igen mongoimport konverterarjson
tillbson
medan du skriver, vilket är anledningen till att de är långsamma. Du kan använda mongoexport och mongoimport när du vill analysera dina samlingsdata visuellt eller användajson
data för något annat ändamål.
- Orsak mongodump skulle bevara MongoDB:s datatyper, dvs.;
-
Du kan köra nedanstående skript i skalet
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
För att använda mongodump , måste du köra mongodump mot en pågående mongod eller mongos-instans. Så dessa kommandon körs förutsatt att mongo är korrekt installerat och sökvägsinställningen är bra, annars kan du navigera till mongo-mappen och köra som ./mongodump
&./mongorestore
. Ovanstående skript kommer att vara användbart om du vill säkerhetskopiera flera samlingar. Du måste ange några saker i skriptet som:
-
mongodump--host "All-shards"
-> Här måste du ange alla shards om din MongoDB är en replikuppsättning, om inte kan du angelocalhost:27017
. -
mongorestore --host=host-shard-name
-> Du måste ange en replikuppsättning, annars dinlocalhost
, Få saker här kan vara valfria--ssl
,--username
,--password
. - Så mongodump kommer att skapa en mapp med namnet dump för första gången som kommer att ha undermapparna med dbNames och varje undermapp kommer att ha
bson
filer som motsvarar deras samlingsnamn dumpade, så du måste referera tilldbName
i återställning kommer kommandot och samlingens namn att tas från variabelni
->./dump/dbName/"$i".bson
Obs! MongoDB v3.2
är så gammal och i molnbaserad MongoDB-tjänst Mongo-atlas
den har redan nått slutet av livscykeln, så uppgradera så snart som möjligt. Om du letar efter en gratis mongo-instans eller börjar med MongoDB – kan du prova atlas.