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

时间:2013-02-27 23:29:03

标签: mongodb

我正在使用Mongo DB,我是新手。我即将把它安装在专门为Mongo服务的服务器上。

我想创建它的2个实例 - 1个用于支持QA环境,另一个用于支持暂存环境。

我更熟悉SQL Server,我可以在其中创建多个实例。

是否有可能对Mongo DB做同样的事情,如果是这样,怎么做?

4 个答案:

答案 0 :(得分:57)

上述answer不是推荐的运行多个实例的方法(特别是当服务器可能同时运行时),因为它会导致使用相同的配置参数,例如 logpath pidfilepath 在大多数情况下不是你想要的。

请考虑创建专用的mongod配置文件,如 mongod-QA.conf mongod-STAGE.conf 。在这些文件中,您可能需要提供 dbpath logpath 文件夹, bind_ip 端口 pidfilepath < / em>特定于每个mongod实例,并且不会相互影响。

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

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

您可以在mongodb docs page

中找到更多详细信息

答案 1 :(得分:47)

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

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

答案 2 :(得分:31)

以下是我在开发环境中将 mongod的 启动到同一台 模拟生产环境的方式。

要启动 mongod ,您应该为每个mongod使用单独的配置。拿4个配置并使用它们启动 mongods

   13
   3.14
   .55
   -13
   -3.14
   -.55

配置看起来像这样:

mongod-primary1.cfg文件内容

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

mongod-secondary1.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-secondary2.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-secondary3.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

答案 3 :(得分:11)

这是可能的 - 你会给每个人自己的端口监听,以及它自己的--dbpath目录来放入它的文件,但我不建议这样做,因为它们都将竞争相同的资源 - RAM ,i / o带宽等

如果此服务器上有多个磁盘,您可以将其数据文件放在不同的设备上,但是您仍然有可能在QA实例中降低生产实例的可用性,可能是在最糟糕的时间。

我会将QA实例放在一台随机的机器上,这台机器在我将它与我的生产实例共存之前做了一些不重要的事情。