我一直在将 mongodb 作为副本集运行,并且最近尝试移动到分片集群。
我有点不确定的一件事是我应该如何启动 mongos 进程。之前我在安装mongodb时使用的是10gen rpms,它为mongod服务安装了一个init.d脚本。我想让 mongos 以类似的方式运行,但我不确定我应该如何真正做到这一点。是编写自定义初始化脚本的情况吗?
我在 Debian 6 和 Mongodb 2.4
[我之前在 mongodb google 组中发布了这个问题,但由于我没有得到任何回复而复制到这里 - 我也会在此处添加任何回复]
您已经在您的回答中链接了相关的官方请求,SERVER-3748确实解释了这些目前不存在的一些原因。
最基本的原因是,如果
mongos
没有至少一个配置服务器启动并工作,您将无法启动,否则它将拒绝启动,这使得它不太适合初始化脚本(外部依赖项)。通常,您希望避免在没有好的方法检查失败原因时将无法启动的服务。然而,给人们一个脚本而不是让他们自己修改/编写一个脚本仍然是有益的,因此存在 Jira 问题。
我建议这样做的方法是将任何脚本基于现有的
mongod
init 脚本,并简单地修改它以mongod
在mongos
适当的地方替换。这是 Debian 脚本的当前版本:https://github.com/mongodb/mongo/blob/master/debian/init.d
您需要更改的内容:
这样做的好处是,在您安装了 10gen 软件包之后,用户已经设置好,并且您
mongod
在系统上有供参考的脚本。您将需要为您的 mongos 创建具有适当值的配置文件,并且您可能还需要调整一些其他的东西 - 关键是在您将任何东西永久化之前进行测试。
通过测试确认脚本可以正常工作后,您可以永久添加它
update-rc.d
嗯,好像有一个 open ticket 要求这个,所以我想它没有正式提供。如果我发现任何用户贡献的脚本或自己编写的脚本,我将更新此答案。
https://jira.mongodb.org/browse/SERVER-3748