linux下MongoDB开机自启动的问题
2012年2月17日
没有评论
按照常理,把如下命令
/usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb
放在/etc/rc.local文件中就可以实现开机自启动了,第一次重启机器发现mongodb顺利启动了,再次重启机器后,通过ps没有查看到相应mongod进程,也就是启动失败了。原因是由于重启机器,导致非正常停止mongod服务,mongod.lock中还记录了上次运行的进程号,为了数据的安全需要执行 /usr/local/mongodb/bin/mongod –repair,当然如果直接把mongod.lock文件删除也可以重新启动了,例如:
/usr/local/mongodb/bin/mongod --repair /usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb 或 rm -rf /data/db/mongod.lock /usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb
注意上述启动Mongodb都是没有增加journal参数,如果带了此参数就不会那么麻烦了,例如
/usr/local/mongodb/bin/mongod --dbpath=/data/db/ --fork --logpath=/data/log/m.log --directoryperdb --journal
就可以了,就算是非正常重启机器,mongodb也会根据日志去修复数据库的。
另外,如果mongodb的数据目录是通过mount的NFS文件夹,自启动好像有问题的。