Tôi đã hỏi số same question on the official MongoDB mailing list này. Họ nói không nên nâng cấp nhiều hơn 1 phiên bản chính tại một thời điểm. (Các phiên bản chính là: 2.2, 2.4, 2.6, 3.0, 3.2, 3.4)
Tôi không muốn thực hiện quá trình nâng cấp bình thường của mỗi phiên bản Chỉ cần khởi chạy mongod và sau đó tắt nó đi. Điều đó khiến tôi cảm thấy như nó sẽ bỏ lại phía sau và tôi muốn có kịch bản xây dựng cơ sở hạ tầng và phiên bản được kiểm soát. Vì vậy, tôi quyết định khởi chạy các phiên bản EC2 mới với Ubuntu mới nhất (kể từ khi máy chủ Mongo v2.4 của tôi cũng là 2 phiên bản LTS phía sau) và MongoDB mới nhất. Tôi đã sử dụng hình ảnh docker của các phiên bản trung gian của MongoDB để thực hiện nâng cấp dữ liệu.
https://gist.github.com/RichardBronosky/2d04c7c2e9a5bea67cd9760a35415a3f#file-uat_mongodb_upgrade_from_prod-sh
Phần lớn các giải pháp là thế này:
# 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
Nguồn
2017-01-25 06:02:22
Đánh giá cao nó con người. – SRINI794
Vâng, tôi đã hỏi câu hỏi này trên danh sách gửi thư MongoDB chính thức và họ nói không nâng cấp nhiều hơn 1 phiên bản chính tại một thời điểm. (Các phiên bản chính là: 2.2, 2.4, 2.6, 3.0, 3.2, 3.4) https://groups.google.com/d/msg/mongodb-user/cbXeM283iHM/y0QbW1h4BQAJ –