Lidt ting :
- Generelt cloneCollection bruges til forskellige mongo-instanser, men ikke til at kopiere på samme instanser.
- Også hvis du bruger
v4.2
du bør stoppe med at brugecopyDB
&cloneCollection
fordi de er forældet kompatibilitet-med-v4.2 &begynd at bruge mongodump og mongorestore eller mongoexport &mongoimport . -
Jeg vil foreslå at bruge mongodump &mongorestore :
- Årsag mongodump ville bevare MongoDBs datatyper dvs.;
bson
typer. - mongodump opretter en binær hvor som mongoexport ville konvertere
bson
tiljson
og igen mongoimport vil konverterejson
tilbson
mens du skriver, hvorfor de er langsomme. Du kan bruge mongoexport &mongoimport, når du ville analysere dine samlingsdata visuelt eller brugejson
data til ethvert andet formål.
- Årsag mongodump ville bevare MongoDBs datatyper dvs.;
-
Du kan køre nedenstående script i 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
For at bruge mongodump , skal du køre mongodump mod en kørende mongod eller mongos instans. Så disse kommandoer køres og forventer, at mongo er korrekt installeret, og sti-opsætningen er god, hvis ikke, kan du navigere til mongo-mappen og køre som ./mongodump
&./mongorestore
. Ovenstående script vil være nyttigt, hvis du ønsker at sikkerhedskopiere flere samlinger. Du skal angive nogle få ting i scriptet som:
-
mongodump--host "All-shards"
-> Her skal du angive alle shards, hvis din MongoDB er et replikasæt, hvis ikke kan du angivelocalhost:27017
. -
mongorestore --host=host-shard-name
-> Du skal angive et replikasæt, ellers skal dinlocalhost
, Få ting her kan være valgfrie--ssl
,--username
,--password
. - Så mongodump vil oprette en mappe med navnet dump for første gang, som vil have undermapperne med dbNames, og hver undermappe vil have
bson
filer, der svarer til deres samlingsnavne dumpet, så du skal henvise tildbName
i gendannelse vil kommando og samlingsnavn blive taget fra variabeli
->./dump/dbName/"$i".bson
Bemærk: MongoDB v3.2
er så gammel og i skybaseret MongoDB-tjeneste Mongo-atlas
den har allerede nået slutningen af sin livscyklus, så opgrader venligst hurtigst muligt. Hvis du leder efter en gratis mongo-instans eller starter med MongoDB - kan du prøve atlas.