現在、古いバージョンのmongo、つまり2.6が自分のシステムで動作しています。私はすでに本場のサイトを運用しており、多くのクライアントデータを持っています。 mongo 3.2へのアップグレードを予定しています。古いバージョンのmongoのデータベースダンプを新しいバージョンのmongoに戻す
だから、私の質問は、V2.6のデータダンプとモンゴV3.2仕事のmongorestoreかどうか?それとも問題を引き起こすことが知られていますか?
すべての回答は非常に貴重です!ありがとう
現在、古いバージョンのmongo、つまり2.6が自分のシステムで動作しています。私はすでに本場のサイトを運用しており、多くのクライアントデータを持っています。 mongo 3.2へのアップグレードを予定しています。古いバージョンのmongoのデータベースダンプを新しいバージョンのmongoに戻す
だから、私の質問は、V2.6のデータダンプとモンゴV3.2仕事のmongorestoreかどうか?それとも問題を引き起こすことが知られていますか?
すべての回答は非常に貴重です!ありがとう
mongo 2.6のデータがあるので、インデックスフィールドの制限は既に満たされています。 Mongo 3.2は問題なくこのバックアップを復元します。あなたは(あなたがレプリカセットを持っている場合)あなたのDBをアップグレードすることができ
他の方法は、3.2と1人の2.6メンバーを交換し、同期を待つことである、そしてもう一つは...これはあなたのビジネスの継続性を与える
私はこれに尋ねましたsame question on the official MongoDB mailing list。彼らは一度に1つ以上のメジャーバージョンをアップグレードしないように言った。 (メジャーバージョン:2.2,2.4,2.6,3.0,3.2,3.4)
すべてのバージョンをインストールする通常のアップグレードプロセスに従わず、mongodを起動してシャットダウンするだけです。それは私にはひどいことが残っているような気がします。私は自分のインフラストラクチャをスクリプト化してバージョン管理することが好きです。そこで、最新のUbuntu(私のMongo v2.4サーバーも2 LTSバージョン以降)と最新のMongoDBで新しいEC2インスタンスを起動することにしました。 MongoDBの中間バージョンのドッカー画像を使用してデータのアップグレードを行いました。
液の大部分はこれです:
# 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
私の答えがアップヴォートを取得し、コメントはありません。私のコードは本当に明白でしょうか?結局のところbashです。 –
ブルーノの心のためだけにコメントする;)ありがとう、ブルーノ!あなたは私の1日(または2つ)を救った!私は "mongodump -h
は男、それを感謝しています。 – SRINI794
ええ、私はこの質問をMongoDBの公式メーリングリストで尋ねました。彼らは一度に1つ以上のメジャーバージョンをアップグレードしないと言いました。 (メジャーバージョン:2.2,2.4,2.6,3.0,3.2,3.4)https://groups.google.com/d/msg/mongodb-user/cbXeM283iHM/y0QbW1h4BQAJ –