运行多个mongodb实例作为服务

时间:2010-11-12 09:55:53

标签: windows-services mongodb

我尝试启动MongoDB作为服务的多个实例。在命令行下我可以启动多个Mongo实例,对于第一个实例,我将“--install”附加到命令,现在它作为服务运行。但现在我尝试将“--install”附加到第二个实例并获得错误:

第一个命令运行良好:

  

c:\ data \ bin \ mongod --nohttpinterface --port 27201 --dbpath c:\ data \ cluster \ db1 --master --logpath c:\ var \ log \ mongodb_db1.log --serviceName MongoDB_1 - -install

但第二个错误:

  

c:\ data \ bin \ mongod --nohttpinterface --port 28000 --dbpath c:\ data \ cluster \ db2 --master --logpath c:\ var \ log \ mongodb_db2.log --serviceName MongoDB_2 - -install

错误:

  

创建服务MongoDB_2。创建服务时出错。 Der Name wird bereits als Dienstname oder als Dienstinstanzname verwendet。 (1078)

我认为MongoDB使用的内部Servicename始终与显示的servicename相同且不同。但我不知道如何解决它?

有什么建议吗?

此致 雷

2 个答案:

答案 0 :(得分:4)

您可以使用正确的命令行开关进行礼貌安装第二个实例。请在此处阅读我的回答https://stackoverflow.com/a/9273816/249992

答案 1 :(得分:-1)

我遇到了同样的问题。我的解决方法有点像hacky,但似乎有效:

  1. 使用monogd --install
  2. 创建第一个mongod服务
  3. 打开注册表并导航至HKLM \ SYSTEM \ CurrentControlSet \ services \ NameOfMongoService
  4. 导出此密钥
  5. 在文本编辑器中编辑导出的reg文件,更新服务名称和mongod参数。
  6. 导入reg(并可能重启)。
  7. 为了让mongos作为服务运行,我采用了不同的方法,并使用了Windows NT资源工具包中的instsrv和srvany:

    http://support.microsoft.com/kb/137890

    这个kb没有提到在使用instsrv安装srvany后,你必须在注册表中新创建的服务下添加一个Parameters子键。此密钥应包含一个名为“Application”的REG_SZ,其中包含应用程序作为服务启动的路径。