MongoDB,分片和多个Windows服务

14
为了让分片工作,我需要运行两个mongod.exe副本。一个作为分片,另一个作为配置服务器。如何将这两个mongod实例都安装为Windows服务?

2
我原以为你可以通过--serviceName命令行选项来完成这个任务,但即使使用唯一的服务名称,显示名称仍然是“Mongo DB”,存在冲突。这似乎是一个错误。请参见http://jira.mongodb.org/browse/SERVER-1590。 - Martin Owen
1
Eliot之前已经合并了我的SERVER-1590补丁,所以最新的1.7.x系列已经包含它。不幸的是,它可能不会被合并到1.6.4或1.6.5中。然而,1.8(稳定版)应该会在12月发布。 - Justin Dearing
4个回答

13
以下命令行将安装第二个Mongo DB实例。请注意,为了避免冲突,您必须提供serviceNameserviceDisplayNameportdbpathlogpath

mongod --install --serviceName "Mongo DB第二个实例" --serviceDisplayName "Mongo DB第二个实例" --port 37017 --dbpath c:\data\db2 --logpath c:\data\logs\mongolog2.txt

然后,您只需使用以下命令启动服务:

net start "Mongo DB第二个实例"


解析命令行错误:未知选项安装 尝试使用'./mongod --help'获取更多信息。 mongod下没有--install命令。 - srikanth_yarram

3
使用Windows资源工具包中的sc.exe(http://support.microsoft.com/kb/251192),它允许您为每个实例指定一个唯一的显示名称: sc.exe create "Mongo DB 1" binPath= "c:\mongodb\bin\mongod.exe --service --dbpath=c:\data\db --logpath=c:\data\log.txt"

问题在于服务和显示名称需要是唯一的。这是Mongo中的一个错误(曾经)。 - detroitpro

2
创建一个新的配置文件,包括不同的端口、数据库位置等,并将其保存为mongod2.cfg。
mongod --install --serviceName 'Mongo DB 2nd instance' --serviceDisplayName 'Mongo DB 2nd instance' -f 'C:\Program Files\MongoDB\Server\4.4\bin\mongod2.cfg'

需要使用完整路径来指定新的配置文件。这将安装为服务,并且您可以像主实例一样编辑所有配置。

1
Mongo在1.8版本中添加了一个--serviceDisplayName标志。

--serviceDisplayName 不足以满足需求,您最终会遇到服务名称和数据文件冲突的问题。 - hemme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接