我一直在运行mongodb作为一个副本集,最近试图转移到一个分片集群。
我有一点不确定的是我应该如何开始蒙哥马斯进程。 以前我在安装mongodb时使用过10gen rpms,mongodb为mongod服务安装了一个init.d脚本。 我希望mongos以类似的方式运行,但我不确定我应该如何做到这一点。 这是编写一个自定义的初始化脚本的情况吗?
我在Debian 6和Mongodb 2.4上
[我以前曾经在MongoDB的google小组上发过这个问题,但是我在这里复制,因为我没有得到任何回应 – 我也会在这里添加任何回应]
你已经在你的答案中链接了相关的官方请求, SERVER-3748解释了为什么这些不存在的原因。
最基本的原因是,如果没有至less有一个configuration服务器正在运行,你不能启动mongos ,否则它将拒绝启动,这使得它成为初始化脚本(外部依赖)的一个不好的select。 一般来说,如果没有很好的方法来检查失败的原因,你希望避免服务失败。
然而,给人们一个脚本,而不是让他们自己修改/编写脚本仍然是有益的,因此存在Jira问题。
我build议这样做的方法是将任何脚本从现有的mongod初始化脚本中删除,并简单地修改它以在适当的情况下用mongosreplacemongod 。 以下是Debian的该脚本的当前版本:
https://github.com/mongodb/mongo/blob/master/debian/init.d
你需要改变的事情:
> DAEMON=/usr/bin/mongos > DESC=mongos-router > > NAME=mongos > > CONF=/etc/mongos.conf > PIDFILE=/var/run/$NAME.pid > ENABLE_MONGODB=yes
在安装10gen软件包之后,这样做的好处是用户已经安装好了,并且有了mongod脚本供系统参考。
您将需要为您的mongos创build适当的configuration文件,并且可能还有一些其他的东西需要调整 – 关键是在做任何永久的事情之前进行testing。
一旦通过testing确认脚本正常工作,您可以使用update-rc.d永久地添加脚本
嗯,看起来好像有一个开放式的门票要求这个,所以我想这不是正式提供的。 我会更新这个答案,如果我find任何用户贡献的脚本或写我自己的。