同一台服务器上的多个MongoDB实例

我正在和Mongo DB合作,我是一个新手。 我即将安装在专门为Mongo服务器上。

我想创build2个实例 – 1来支持QA环境,另一个来支持分段环境。

我更熟悉SQL Server,我可以创build多个实例。

是否有可能做同样的Mongo DB,如果是的话,如何?

前面提到的答案不是推荐的方式来运行多个实例(特别是当服务器可能同时运行时),因为它会导致使用相同的configuration参数,例如logpathpidfilepath ,在大多数情况下不是你想。

请考虑创build专用的mongodconfiguration文件,如mongod-QA.confmongod-STAGE.conf 。 在这些文件中,您可能需要提供特定于每个mongod实例的dbpathlogpath文件夹, bind_ipportpidfilepath ,这些文件不会相互影响。

完成这些步骤之后,您可以按照以下方式触发两个实例

mongod --config <path-to>/mongod-QA.conf mongod --config <path-to>/mongod-STAGE.conf 

你可以在mongodb文档页面find更多的细节

你只需要为第二个实例创build另一个文件夹(例如:mongodb2)dbpath,然后在不同的端口上运行(例如:27018)

  mongod --dbpath /usr/local/var/mongodb2 --port 27018 

下面是我如何在同一台PC上启动4个mongod仿真开发环境中的生产环境。

要启动mongod,你应该为每个mongod使用单独的configuration 。 以4个configuration并使用它们启动mongods

 start C:\mongodb\bin\mongod.exe --config C:\net2\dev1-pc\configs\mongod-primary1.cfg start C:\mongodb\bin\mongod.exe --config C:\net2\dev1-pc\configs\mongod-secondary1.cfg --rest start C:\mongodb\bin\mongod.exe --config C:\net2\dev1-pc\configs\mongod-secondary2.cfg start C:\mongodb\bin\mongod.exe --config C:\net2\dev1-pc\configs\mongod-secondary3.cfg 

Configs看起来像这样:

mongod-primary1.cfg文件内容

 systemLog: destination: file path: c:\net2\primary1-pc\data\log\mongod.log storage: dbPath: c:\net2\primary1-pc\data\db net: port: 27018 replication: replSetName: repl1 

mongod-secondary1.cfg文件内容

 systemLog: destination: file path: c:\net2\secondary1-pc\data\log\mongod.log storage: dbPath: c:\net2\secondary1-pc\data\db net: port: 27019 replication: replSetName: repl1 

mongod-secondary2.cfg文件内容

 systemLog: destination: file path: c:\net2\secondary2-pc\data\log\mongod.log storage: dbPath: c:\net2\secondary2-pc\data\db net: port: 27020 replication: replSetName: repl1 

mongod-secondary3.cfg文件内容

 systemLog: destination: file path: c:\net2\secondary3-pc\data\log\mongod.log storage: dbPath: c:\net2\secondary3-pc\data\db net: port: 27021 replication: replSetName: repl1 

这是可能的 – 你会给每一个自己的端口来监听,并且它自己的–dbpath目录把它的文件,但我不会推荐这个,因为他们都将争夺相同的资源 – RAM,I / o带宽等

如果您在此服务器上有多个磁盘,则可以将其数据文件放在单独的设备上,但是您仍然有可能在可能的最坏时间降低生产实例的可用性的风险。

我会把QA实例放在一个随机的机器上,这个机器做了一些不重要的事情,然后把它和我的生产实例放在一起。