为什么错误mongod死了,但子系统locking和Linux上的日记文件的可用空间不足?

我在Linux CentOS服务器上安装了mongo-10gen mongo-10gen- server。

我遵循链接的步骤。

我已经configuration/etc/mongod.conf为 –

logpath=/var/log/mongo/mongod.log port=27017 dbpath=/var/lib/mongo 

我已经在iptables中为mongo设置了端口27017。 启动mongo我使用了命令 –

 service mongod start and mongo 

它开始很好,但几天后,我得到了错误 –

 Tue Jan 29 08:41:54 [initandlisten] ERROR: Insufficient free space for journal files Tue Jan 29 08:41:54 [initandlisten] Please make at least 3379MB available in /var/lib/mongo/journal or use --smallfiles Tue Jan 29 08:41:54 [initandlisten] Tue Jan 29 08:41:54 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating Tue Jan 29 08:41:54 dbexit: Tue Jan 29 08:41:54 [initandlisten] shutdown: going to close listening sockets... Tue Jan 29 08:41:54 [initandlisten] shutdown: going to flush diaglog... Tue Jan 29 08:41:54 [initandlisten] shutdown: going to close sockets... Tue Jan 29 08:41:54 [initandlisten] shutdown: waiting for fs preallocator... Tue Jan 29 08:41:54 [initandlisten] shutdown: lock for final commit... Tue Jan 29 08:41:54 [initandlisten] shutdown: final commit... Tue Jan 29 08:41:54 [initandlisten] shutdown: closing all files... Tue Jan 29 08:41:54 [initandlisten] closeAllFiles() finished Tue Jan 29 08:41:54 [initandlisten] journalCleanup... Tue Jan 29 08:41:54 [initandlisten] removeJournalFiles Tue Jan 29 08:41:54 [initandlisten] shutdown: removing fs lock... Tue Jan 29 08:41:54 dbexit: really exiting now 

当我执行命令 –

 service mongod status 

它给错误 –

 mongod dead but subsys locked 

请帮我解决这个问题, 但是这个问题已经被locking了,而且期刊的可用空间不足,终止了

运行mongod --config mongod.conf时,可以将以下内容添加到提供的configuration文件中

对于MongoDB 3.x (最新版本)

 storage: mmapv1: smallFiles: true 

对于版本2.6+

 storage: smallFiles: true 

对于版本2.4和更less

 smallfiles = true 

然后,只需执行mongod来接受你的configuration文件(这里假定configuration的位置是/etc/mongodb.conf ):

 mongod -f /etc/mongodb.conf 

小文件参数的文档 :

 Set to true to modify MongoDB to use a smaller default data file size. Specifically, smallfiles reduces the initial size for data files and limits them to 512 megabytes. The smallfiles setting also reduces the size of each journal files from 1 gigabyte to 128 megabytes. 

使用以下命令启动mongod实例

 mongod --dbpath /data/db --smallfiles 

我在http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/上查看官方指南;

使用后

 $sudo service mongod start 

我通过查看这个日志去validationMongoDB是否成功启动:

 /var/log/mongodb/mongod.log 

这是我发现的问题:

 2014-11-11T12:54:05.808-0500 [initandlisten] ERROR: Insufficient free space for journal files 2014-11-11T12:54:05.808-0500 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles 2014-11-11T12:54:05.808-0500 [initandlisten] 2014-11-11T12:54:05.808-0500 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating 2014-11-11T12:54:05.808-0500 [initandlisten] dbexit: 2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to close listening sockets... 2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to flush diaglog... 2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: going to close sockets... 2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: waiting for fs preallocator... 2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: lock for final commit... 2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: final commit... 2014-11-11T12:54:05.808-0500 [initandlisten] shutdown: closing all files... 2014-11-11T12:54:05.808-0500 [initandlisten] closeAllFiles() finished 2014-11-11T12:54:05.808-0500 [initandlisten] journalCleanup... 2014-11-11T12:54:05.808-0500 [initandlisten] removeJournalFiles 2014-11-11T12:54:05.814-0500 [initandlisten] shutdown: removing fs lock... 2014-11-11T12:54:05.814-0500 [initandlisten] dbexit: really exiting now 

解:

在/etc/mongod.conf文件的末尾添加了这一行:

 smallfiles = true 

之后,我重新启动了mongod服务:

 $sudo service mongod restart 

然后,当我去审查日志,我意识到一切都是完美的,问题是固定的:

 2014-11-11T22:32:20.544-0500 ***** SERVER RESTARTED ***** 2014-11-11T22:32:20.552-0500 [initandlisten] MongoDB starting : pid=5200 port=27017 dbpath=/var/lib/mongodb 64-bit host=jaimemontoya-VirtualBox 2014-11-11T22:32:20.552-0500 [initandlisten] db version v2.6.5 2014-11-11T22:32:20.552-0500 [initandlisten] git version: e99d4fcb4279c0279796f237aa92fe3b64560bf6 2014-11-11T22:32:20.552-0500 [initandlisten] build info: Linux build8.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49 2014-11-11T22:32:20.552-0500 [initandlisten] allocator: tcmalloc 2014-11-11T22:32:20.552-0500 [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1" }, storage: { dbPath: "/var/lib/mongodb", smallFiles: true }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } } 2014-11-11T22:32:20.564-0500 [initandlisten] journal dir=/var/lib/mongodb/journal 2014-11-11T22:32:20.564-0500 [initandlisten] recover : no journal files present, no recovery needed 2014-11-11T22:32:20.738-0500 [initandlisten] waiting for connections on port 27017 2014-11-11T22:33:20.748-0500 [clientcursormon] mem (MB) res:36 virt:245 2014-11-11T22:33:20.748-0500 [clientcursormon] mapped (incl journal view):64 2014-11-11T22:33:20.748-0500 [clientcursormon] connections:0 

对于有这个问题的人,尽pipe有足够的空间来创build日志文件。

我的问题:我有足够的空间来创build日志文件。 Mongo给了我一个连接失败的问题。 我使用kill命令来杀死mongod进程,这反过来又给我提供了子库问题。 这是什么对我有用:

转到/var/lock/subsys并删除mongod文件

现在service mongod stop ,然后service mongod start

现在开始使用mongo shell,一切似乎都运行良好。

第一

 cd /usr/local/src/mongo/bin/<br> 

然后

 ./mongod --dbpath /usr/local/src/mongo/data/db/ --smallfiles