昨日何も考えず、VirtualBox上のUbuntu(ゲスト)でMongoDB動かしたまま、
ホストのWindowsをシャットダウンして帰ったわけなんですが、
今朝起動したところ↓のようなエラーが出て起動できませんでした。
# /usr/local/mongodb/bin/mongod --replSet replica --port 27017 --dbpath /data/replica1 --rest --nojournal Wed Jan 25 10:01:36 [initandlisten] MongoDB starting : pid=2131 port=27017 dbpath=/data/replica1 64-bit host=ubnt Wed Jan 25 10:01:36 [initandlisten] db version v2.0.2, pdfile version 4.5 Wed Jan 25 10:01:36 [initandlisten] git version: 514b122d308928517f5841888ceaa4246a7f18e3 Wed Jan 25 10:01:36 [initandlisten] build info: Linux bs-linux64.10gen.cc 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_41 Wed Jan 25 10:01:36 [initandlisten] options: { dbpath: "/data/replica1", nojournal: true, port: 27017, replSet: "replica", rest: true } ************** Unclean shutdown detected. Please visit http://dochub.mongodb.org/core/repair for recovery instructions. ************* Wed Jan 25 10:01:36 [initandlisten] exception in initAndListen: 12596 old lock file, terminating Wed Jan 25 10:01:36 dbexit: Wed Jan 25 10:01:36 [initandlisten] shutdown: going to close listening sockets... Wed Jan 25 10:01:36 [initandlisten] shutdown: going to flush diaglog... Wed Jan 25 10:01:36 [initandlisten] shutdown: going to close sockets... Wed Jan 25 10:01:36 [initandlisten] shutdown: waiting for fs preallocator... Wed Jan 25 10:01:36 [initandlisten] shutdown: closing all files... Wed Jan 25 10:01:36 [initandlisten] closeAllFiles() finished Wed Jan 25 10:01:36 dbexit: really exiting now
MongoDBのドキュメントのページのDurability and Repairの章をみると、
コマンドラインで mongod –repair するか、
mongoシェルで db.repairDatabase(); ってするかみたいです。
mongod –repairしてみると↓のようにクリアされたようです。
# ./mongod --repair Wed Jan 25 10:47:50 [initandlisten] MongoDB starting : pid=2801 port=27017 dbpath=/data/db/ 64-bit host=ubnt Wed Jan 25 10:47:50 [initandlisten] db version v2.0.2, pdfile version 4.5 Wed Jan 25 10:47:50 [initandlisten] git version: 514b122d308928517f5841888ceaa4246a7f18e3 Wed Jan 25 10:47:50 [initandlisten] build info: Linux bs-linux64.10gen.cc 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_41 Wed Jan 25 10:47:50 [initandlisten] options: { repair: true } 略 Wed Jan 25 10:48:00 [initandlisten] closeAllFiles() finished Wed Jan 25 10:48:00 [initandlisten] journalCleanup... Wed Jan 25 10:48:00 [initandlisten] removeJournalFiles Wed Jan 25 10:48:00 [initandlisten] shutdown: removing fs lock... Wed Jan 25 10:48:00 dbexit: really exiting now
で、起動しようとしたら、それでも同じエラーが出てるがや。。。
Wed Jan 25 10:52:57 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
↓によると、mongod.lockっていうデータディレクトリ直下にあるロック用の
ファイルを消してやらないとダメみたいです。
[MongoDB]MongoDBの新機能:ジャーナリングについて詳しく| @doryokujin ブログ:勉強会はうちに帰っても勉強会
ということで。
# rm /data/replica1/mongod.lock # rm /data/replica2/mongod.lock # rm /data/replica3/mongod.lock
一応、もう一発mongod –repairカマしてから、
それぞれ↓で起動してめでたしめでたし。
/usr/local/mongodb/bin/mongod --replSet replica --port 27017 --dbpath /data/replica1 --rest --nojournal /usr/local/mongodb/bin/mongod --replSet replica --port 27018 --dbpath /data/replica2 --rest --nojournal /usr/local/mongodb/bin/mongod --replSet replica --port 27019 --dbpath /data/replica3 --rest --nojournal
クエリ的にも昨日入れたデータが取れて
/usr/local/mongodb/bin# ./mongo localhost:27018 MongoDB shell version: 2.0.2 connecting to: localhost:27018/test SECONDARY> rs.slaveOk(); SECONDARY> db.posts.find( { "comments.author" : "jim" } ) { "_id" : ObjectId("4f1e79261c0db27b00f1954c"), "author" : "joe", "created" : ISODate("2009-03-27T15:00:00Z"), "title" : "Yet another blog post", "text" : "Here is the text...", "tags" : [ "example", "joe" ], "comments" : [ { "author" : "jim", "comment" : "I disagree" }, { "author" : "nancy", "comment" : "Good post" } ] }
Scaling MongoDB
posted with amazlet at 12.01.25
Kristina Chodorow
Oreilly & Associates Inc
売り上げランキング: 53297
Oreilly & Associates Inc
売り上げランキング: 53297
コメント
MongoDBが起動してくれなくなったら
はじめに MongoDBをUbuntuにインストールしてあるアプリを作っている。開発にはVMWareでやっているのだが、OSごと強制終了された後の建て直しに結構大変だったのでメモ。 経過 /etc/mongodb.conf…