我正在迈出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
?
谢谢。
答案 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使用此名称作为副本集的任何问题,但如果您稍后决定向系统添加分片,则可能会引起混淆。