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

ama*_*eur 51 mongodb

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

我想创建它的2个实例 - 1个用于支持QA环境,另一个用于支持Staging Environment.

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

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

kas*_*sur 60

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

请考虑创建专用的mongod配置文件,如mongod-QA.confmongod-STAGE.conf.在这些文件中,您可能希望提供特定于每个mongod实例的dbpath,logpath文件夹,bind_ip,portpidfilepath,这些不会相互影响.

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

mongod --config <path-to>/mongod-QA.conf
mongod --config <path-to>/mongod-STAGE.conf
Run Code Online (Sandbox Code Playgroud)

您可以在mongodb docs 页面上找到更多详细信息

  • 关于[运行多个数据库实例]的Mongo文档(http://docs.mongodb.org/manual/administration/configuration/#run-multiple-database-instances-on-the-same-system) (4认同)

Ila*_*ang 50

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

 mongod --dbpath /usr/local/var/mongodb2 --port 27018
Run Code Online (Sandbox Code Playgroud)

  • 请检查@kasur的答案,并在警告的情况下编辑您的问题 (3认同)

dis*_*ame 33

以下是我在同一台PC上启动4个mongod模拟开发环境中的生产环境的方法.

要启动mongod,您应该为每个mongod使用单独的配置.采取4个配置并使用它们启动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
Run Code Online (Sandbox Code Playgroud)

配置看起来像这样:

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)


Asy*_*sky 11

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

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

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

  • 你只需要安装一个mongodb发行版.你只需要两次启动mongod进程. (3认同)