Linux 管理不是我的强项,所以我在这方面有点不知所措。
系统信息:
/proc/version -> Linux 版本 2.6.18-028stab091.2
/etc/debian_version-> 5.0.8
每当服务器关闭并重新启动时,MongoDB 都不会启动。看来 mongod 没有干净地关闭。.lock 文件仍然存在,我无法手动将其启动,除非我删除它并运行 --repair。如果我查看 mongod 的日志文件,我看不到关闭序列,它只是从查询转到启动。
Wed Jul 13 17:57:49 [conn1] update ps.profiles query: { blah blah blah } 224ms
Thu Jul 14 07:07:51 MongoDB starting : pid=1167 port=27017 dbpath=/srv/db/ProfileServer 64-bit
我可以看到脚本已经到位,可以处理关机和重启:
$ ls -l /etc/rc0.d/*mongodb
lrwxrwxrwx 1 root root 17 Feb 17 09:46 /etc/rc0.d/K20mongodb -> ../init.d/mongodb
$ ls -l /etc/rc2.d/*mongodb
lrwxrwxrwx 1 root root 17 Feb 17 09:46 /etc/rc2.d/S20mongodb -> ../init.d/mongodb
$ ls -l /etc/rc6.d/*mongodb
lrwxrwxrwx 1 root root 17 Feb 17 09:46 /etc/rc6.d/K20mongodb -> ../init.d/mongodb
我知道这些脚本是有效的。通过运行
sudo /etc/init.d/mongodb stop
sudo /etc/init.d/mongodb start
我在日志中看到
... various other shutdown messages ...
Thu Jul 14 08:42:06 [interruptThread] shutdown: removing fs lock...
Thu Jul 14 08:42:06 dbexit: really exiting now
Thu Jul 14 08:42:12 MongoDB starting : pid=3184 port=27017 dbpath=/srv/db/ProfileServer 64-bit
我是不是做了一些明显错误的事情?有没有日志文件可以让我追踪运行级别的变化?
答案1
我已经使用 10gen repos 中的打包版本成功完成了这项工作:
http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages http://www.mongodb.org/display/DOCS/CentOS+and+Fedora+Packages
我怀疑这里的问题是关闭是如何发生的,以及它要等待多长时间才能杀死 mongo 进程。如果你不想费心安装包只是为了查看一些初始化脚本,请前往 github 并查看源代码(开源数据库的优势之一 :))
https://github.com/mongodb/mongo/blob/master/rpm/init.d-mongod
与您自己的初始化脚本进行比较和对比并进行设置,以查看哪里可能出了问题。