34

理由はわかりませんが、昨日サービスが正常に機能していたのに、突然 MongoDB を起動できなくなりました。

[root@purr ~]# service mongod start
Starting mongod: Thu Aug 29 23:26:07.550 
Thu Aug 29 23:26:07.550 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
Thu Aug 29 23:26:07.550 
about to fork child process, waiting until server is ready for connections.
forked process: 5078
all output going to: /var/log/mongo/mongod.log
ERROR: child process failed, exited with error number 100
                                                           [FAILED]

/var/log/mongo/mongod.log と以下を調べました。

***** SERVER RESTARTED *****


Thu Aug 29 23:29:05.874 [initandlisten] MongoDB starting : pid=5118 port=27017 dbpath=/var/lib/mongo 32-bit host=purr.ipetfindr.com
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Thu Aug 29 23:29:05.874 [initandlisten] **   32 bit builds are limited to less than 2GB of data (or less with --journal).
Thu Aug 29 23:29:05.874 [initandlisten] **   Note that journaling defaults to off for 32 bit and is currently off.
Thu Aug 29 23:29:05.874 [initandlisten] **   See http://dochub.mongodb.org/core/32bit
Thu Aug 29 23:29:05.874 [initandlisten]
Thu Aug 29 23:29:05.874 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Thu Aug 29 23:29:05.875 [initandlisten]
Thu Aug 29 23:29:05.875 [initandlisten] db version v2.4.6
Thu Aug 29 23:29:05.875 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Thu Aug 29 23:29:05.875 [initandlisten] build info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Thu Aug 29 23:29:05.875 [initandlisten] allocator: system
Thu Aug 29 23:29:05.875 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
**************
Unclean shutdown detected.
Please visit http://dochub.mongodb.org/core/repair for recovery instructions.
*************
Thu Aug 29 23:29:05.875 [initandlisten] exception in initAndListen: 12596 old lock file, terminating
Thu Aug 29 23:29:05.875 dbexit:
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close listening sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to flush diaglog...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: going to close sockets...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: waiting for fs preallocator...
Thu Aug 29 23:29:05.875 [initandlisten] shutdown: closing all files...
Thu Aug 29 23:29:05.875 [initandlisten] closeAllFiles() finished
Thu Aug 29 23:29:05.875 dbexit: really exiting now

サーバーを再起動するときにこれを修正するにはどうすればよいですか。サービスが機能していないようです。

修復後のエラー

何をすべきかわからないのは、エラー could't open file /var/lib/mongo/ local.ns terminatingについて何か言っていることです

***** SERVER RESTARTED *****


Fri Aug 30 04:49:43.041 [initandlisten] MongoDB starting : pid=3300 port=27017 dbpath=/var/lib/mongo 32-bit host=purr.ipetfindr.com
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Fri Aug 30 04:49:43.041 [initandlisten] **   32 bit builds are limited to less than 2GB of data (or less with --journal).
Fri Aug 30 04:49:43.041 [initandlisten] **   Note that journaling defaults to off for 32 bit and is currently off.
Fri Aug 30 04:49:43.041 [initandlisten] **   See http://dochub.mongodb.org/core/32bit
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] ** WARNING: You are running in OpenVZ. This is known to be broken!!!
Fri Aug 30 04:49:43.041 [initandlisten]
Fri Aug 30 04:49:43.041 [initandlisten] db version v2.4.6
Fri Aug 30 04:49:43.041 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Fri Aug 30 04:49:43.041 [initandlisten] build info: Linux bs-linux32.10gen.cc 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_49
Fri Aug 30 04:49:43.041 [initandlisten] allocator: system
Fri Aug 30 04:49:43.041 [initandlisten] options: { config: "/etc/mongod.conf", dbpath: "/var/lib/mongo", fork: "true", logappend: "true", logpath: "/var/log/mongo/mongod.log", pidf$
Fri Aug 30 04:49:43.058 [initandlisten] couldn't open /var/lib/mongo/local.ns errno:13 Permission denied
Fri Aug 30 04:49:43.058 [initandlisten] error couldn't open file /var/lib/mongo/local.ns terminating
Fri Aug 30 04:49:43.059 dbexit:
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close listening sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to flush diaglog...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: going to close sockets...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: waiting for fs preallocator...
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: closing all files...
Fri Aug 30 04:49:43.059 [initandlisten] closeAllFiles() finished
Fri Aug 30 04:49:43.059 [initandlisten] shutdown: removing fs lock...
Fri Aug 30 04:49:43.059 dbexit: really exiting now
4

12 に答える 12

14

最初に実行することでこれを解決しましたC:\mongodb\bin\mongod.exe --repair。その後、MongoDB を再度実行したC:\mongodb\bin\mongod.exeところ、正常に起動しました。

于 2014-02-15T01:40:16.837 に答える
11

d:\test\mongodb\data\mongod.lock ファイルを削除することでこれを解決しました。このファイルよりもmongo dbに再接続すると、同じフォルダーに自動生成されます。わたしにはできる。

于 2014-09-18T10:22:08.530 に答える
3

おそらくmongod.lockファイルが原因である可能性がありますが、削除してもエラーが続く場合は、mongo.confのパスを確認してください。構成されたログパスまたは dbPath が存在しないなどの単純な問題である可能性があります (mongo/conf/mongod.conf のパスを確認し、それらが存在するかどうかを確認します。mongo が独自のディレクトリ構造を作成できない場合があるため、作成する必要がある場合があります) mongod を起動する前に、それらのディレクトリを手動で削除します)。

于 2016-12-29T10:52:48.550 に答える
3

私にとって、起動しない理由は、/var/lib/mongo/mongo.lock に孤立したロック ファイルであることが判明しました。そのファイルを削除すると、mongo は正常に起動しました。私のシステムは、これより前にいくつかの厄介なクラッシュがありました。【フェドーラ14】

于 2014-06-03T21:15:33.860 に答える
1

権限を確認しましたが、すべて問題ありませんでした (mongod:mongod)。私は大規模なプロジェクトに取り組んでおり、スクリプトが使用可能なすべてのディスク領域を消費するという開発環境での同様の問題から、mongod を実行するには少なくとも 3.7Gb の空きディスク領域が必要であることがエラー メッセージで確認できました。

自分のディスク容量を確認したところ、残りは 2Gb 未満でした。一部のデータを移動/消去した後、mongod を正常に再起動できます。

お役に立てれば ;-)

于 2014-06-12T13:00:17.770 に答える
1

ロックファイルを削除しようとしましたが、これが起こった本当の理由は、データディレクトリとして ~/data/db を使用していたためです。Mongo には、データベースへの絶対パスが必要です。それを /home//data/db に変更したら、私は仕事をしていました。

于 2016-05-13T16:20:22.093 に答える
1

それはすべてあなたのエラーメッセージにあります - クリーンでないシャットダウンが検出されたようです。詳細については、 http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/を参照してください。

私の経験では、通常、オプション ro repair DBで実行mongod.exeすると役立ちます。--repair

于 2013-08-30T04:53:15.350 に答える
0

C:\mongodb\data\ パスから .lock ファイルを削除し、mongodb サービスを再起動します。

于 2016-02-17T18:59:40.280 に答える
0

まだ賛成/コメントはできませんが、ロックファイルを手動で削除するために+1します。

C9 ワークスペースがクラッシュし、予期しないシャットダウンが発生しました。API のアドバイス: https://docs.mongodb.com/manual/tutorial/recover-data-following-unexpected-shutdown/

..しかし、data/mongo.lockを削除するとうまくいきました:)。

また、接続が拒否された場合 (これは私に起こりました) に備えて、ロック ファイルを削除する前に修復コマンドを実行すると、問題が解決する可能性があります (私の場合はそうでした)。

sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/

于 2017-06-09T23:17:34.923 に答える
0

Windows ターミナルから mongod.exe を実行すると、メッセージが表示されUnrecognized option: mpました。mp:の最後に空がありましたmongod.cfg。それを削除すると、問題が解決しました。

于 2019-05-09T14:33:20.857 に答える