Ich fragte diese same question on the official MongoDB mailing list. Sie sagten, dass sie nicht mehr als 1 Hauptversion auf einmal aktualisieren sollten. (Hauptversionen sind: 2.2, 2.4, 2.6, 3.0, 3.2, 3.4)
Ich wollte nicht den normalen Upgrade-Prozess der Installation jeder Version folgen Nur um mongod zu starten und dann heruntergefahren. Das fühlt sich für mich so an, als würde es den Hinterhalt hinter mir lassen und ich möchte, dass meine Infrastruktur gebastelt und versionsgesteuert wird. Also entschied ich mich, neue EC2-Instanzen mit dem neuesten Ubuntu zu starten (da meine Mongo v2.4-Server auch 2 LTS-Versionen hinter sich hatten) und die neueste MongoDB. Ich habe Docker-Images von Midgovern von MongoDB verwendet, um die Daten zu aktualisieren.
https://gist.github.com/RichardBronosky/2d04c7c2e9a5bea67cd9760a35415a3f#file-uat_mongodb_upgrade_from_prod-sh
Der Großteil der Lösung ist dies:
# mongo.conf is using the default dbPath: /var/lib/mongodb
# this path is for temporary use by the mongo docker container
mkdir -p /data/db/dump
# see: https://hub.docker.com/_/mongo/ (search for /data/db)
# see: https://github.com/docker-library/mongo/blob/30d09dbd6343d3cbd1bbea2d6afde49f5d9a9295/3.4/Dockerfile#L59
cd /data/db
mongodump -h prodmongo.int
# Get major versions from https://hub.docker.com/r/library/mongo/tags/
step=0
for major_version in 2.6.12 3.0.14 3.2.11 3.4.1; do
sudo docker stop some-mongo || true
sudo docker rm some-mongo || true
sudo docker run --name some-mongo -v /data/db:/data/db -d mongo:$major_version
false; while [[ $? > 0 ]]; do
sleep 0.5
sudo docker exec -it some-mongo mongo --eval 'printjson((new Mongo()).getDBNames())'
done
if (($step == 0)); then
sudo docker exec -it some-mongo mongorestore /data/db/dump
fi
((step += 1))
done
# Finish up with docker
sudo rm -rf /data/db/dump/*
sudo docker exec -it some-mongo bash -c 'cd /data/db; mongodump'
sudo docker stop some-mongo
sudo docker rm some-mongo
# Load upgraded data into latest version of MongoDB (WiredTiger storage engine will be used)
mongorestore /data/db/dump
sudo rm -rf /data
Schätzen Sie es ein Mann. – SRINI794
Ja, ich habe diese Frage auf der offiziellen MongoDB-Mailingliste gestellt und sie sagte, dass sie nicht mehr als 1 Hauptversion auf einmal upgraden sollten. (Hauptversionen sind: 2.2, 2.4, 2.6, 3.0, 3.2, 3.4) https://groups.google.com/d/msg/mongodb-user/cbXeM283iHM/y0QbW1h4BQAJ –