我正在使用Mongo DB,我是新手。我即将把它安装在专门为Mongo服务的服务器上。
我想创建它的2个实例 - 1个用于支持QA环境,另一个用于支持暂存环境。
我更熟悉SQL Server,我可以在其中创建多个实例。
是否有可能对Mongo DB做同样的事情,如果是这样,怎么做?
答案 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实例放在一台随机的机器上,这台机器在我将它与我的生产实例共存之前做了一些不重要的事情。