按照常理,把如下命令
/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文件夹,自启动好像有问题的。
本文详细介绍了如何解决MongoDB在开机自启动时出现的失败问题,包括非正常重启导致的mongod进程消失,以及数据目录为NFS文件夹时可能出现的自启动问题。提供了解决方案,如使用`mongod repair`命令修复数据库或删除`mongod.lock`文件,同时强调了在自启动命令中加入`--journal`参数的重要性以避免此类问题。
5605

被折叠的 条评论
为什么被折叠?



