Mongodb 分片-mongos 进程的初始化脚本?

Mongodb 分片-mongos 进程的初始化脚本?

我一直在将 mongodb 作为副本集运行,最近尝试将其移动到分片集群。

我有点不确定的一件事是我应该如何启动 mongos 进程。以前,我在安装 mongodb 时使用了 10gen rpm,它为 mongod 服务安装了一个 init.d 脚本。我想让 mongos 以类似的方式运行,但不确定我到底应该怎么做。这是编写自定义 init 脚本的情况吗?

我使用的是 Debian 6 和 Mongodb 2.4

[我之前曾在 mongodb google 群组中发布过这个问题,但由于没有收到任何回复,所以我将其复制到了这里 - 我也会在这里添加任何回复]

答案1

您在回答中链接了相关的官方请求,并且服务器-3748确实解释了为什么这些目前不存在的一些原因。

最基本的原因是,mongos如果没有至少一个配置服务器启动并运行,您将无法启动,否则它将拒绝启动,这使得它成为初始化脚本(外部依赖项)的不良候选者。通常,如果没有好的方法来检查失败的原因,您希望避免服务无法启动。

然而,给人们一个脚本而不是让他们自己修改/编写脚本仍然是有益的,因此存在 Jira 问题。

我建议的方法是将任何脚本基于现有的mongodinit 脚本,然后对其进行修改mongod以在mongos适当的位置进行替换。以下是该脚本在 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 创建具有适当值的配置文件,并且可能还有一些其他内容需要调整 - 关键是在将任何内容永久化之前进行测试。

一旦通过测试确认脚本可以正常工作,就可以使用以下命令永久添加它update-rc.d

答案2

嗯,好像有一张未结票据只要求这个,所以我猜它不是官方提供的。如果我找到任何用户贡献的脚本或编写自己的脚本,我会更新此答案。

https://jira.mongodb.org/browse/SERVER-3748

相关内容