复制集的最佳实践mongod参数

时间:2012-01-31 10:00:35

标签: mongodb replication startup

我正在迈出mongoDB的第一步,以便建立一个HA环境。我通过本教程运行:http://www.mongodb.org/download/attachments/9830402/mongodb+replica+sets+intro.pdf,一切正常。

要为复制集启动mongoDB守护程序,您必须设置一个启动参数--replSet <name>

不,我需要在服务器启动时启动此守护程序,而不是每次重启“手动”后都运行以下命令: mongod --rest --replSet mongos

在服务器启动时启动此守护程序的一种方法是更改​​/etc/init.d/mongodb,如下所示:

    /sbin/startproc -u mongodb -g mongodb ${mongodb_BIN} --quiet \
                                  --rest --replSet mongos \
                    -f "$mongodb_CONFIG"

/etc/init.d/mongodb是正确的地方吗?关键是,如果复制集的名称发生更改,我必须更改此文件。 或者有没有办法将这些启动参数放到配置文件中,如/etc/mongodb.conf

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以在mongod命令行上指定的任何选项(-f / --config除外)也可以在加载--config的配置文件中指定。我建议不要过多地更改init脚本,而是使用配置文件。在你的情况下,你有:

rest=true
replSet=mongos
quiet=true

在您的配置文件中。请注意,由于在2.0之前的MongoDB版本中如何解析配置文件的怪癖,布尔选项(如quiet)将“= false”赋值视为true。要禁用布尔参数,请在名称前添加“no”,如:

nojournal=true

而不是:

journal=false

有关配置文件的更多信息,请参阅http://www.mongodb.org/display/DOCS/File+Based+Configuration

一方面注意:“mongos”是MongoDB的“分片路由器”组件的名称,因此您可能希望将其作为副本集名称来避免。它不会导致MongoDB使用此名称作为副本集的任何问题,但如果您稍后决定向系统添加分片,则可能会引起混淆。