ちょびろぐ出張版

技術的なアレコレを書くためにたちあげた

AmazonEC2でMongoDBを2.4.10 → 2.6へupgradeしてみた

MongoDBが超久々のメジャーアップデートということでメールなどきてたので対応してみた。

MongoDB2.6で何が変わったのか?

かなり変わっているみたいです、今のところ下位互換が保たれているので
使えなくなるコマンドがあるような感じではなさそうなのでさくっと対応してみた。

環境

前提として公式マニュアルにもあるけど、2.4系列で動作している環境でないと
アップグレードが出来ません。
なので、2.4より前のバージョンを使っている人は先に2.4にしちゃいましょう。

EC2にインストール

公式マニュアルにLinux用はbinファイルが提供されてるから置き換えてねってことらしい。
まずは、動いているmongodを止める。

[root@hoge]#/etc/init.d/mongod stop
[root@hoge]#cd /var/tmp

wgetでダウンロード

[root@hoge]#wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.6.0.tgz
[root@hoge]#tar -xzf mongodb-linux-x86_64-2.6.0.tgz

/user/bin/配下にコピー(必要に応じてbinは適宜どこかにバックアップしとく)

[root@hoge]#cp -r /usr/bin/ mongodb-linux-x86_64-2.6.0/*
[root@hoge]#mongod --fork --dbpath /var/lib/mongo --logpath /var/log/mongo/mongod.log
[root@hoge]#mongo --version
MongoDB shell version: 2.6.0

ここまででmongo2.6へのbinファイルのアップデートはおしまい。

databaseのチェック

マニュアルによると次のコマンドで2.6用に対応してくれるらしい。
超便利!!

[root@hoge]#mongo
> use admin;
switched to db admin
> db.upgradeCheckAllDBs();

すると…

Checking database db_name
Checking collection db_name.system.indexes
92963 documents processed
114057 documents processed
234599 documents processed
277475 documents processed
297754 documents processed
Checking database local
Checking collection local.startup_log
Checking database admin
Everything is ready for the upgrade!
true

みたいなログがずらずらっと流れるはず。
最後に終わったよーとtrueが返ってくればOK!
とても簡単。
エラーが出なかったけど出た場合はどうするかは今のところ不明。

そんなわけでアップグレードは簡単に出来ましたとさ。
後は新コマンドやエンジンを試してみて、またブログに書こうかと思う。