我正在与 Mongo DB 合作,我是新手。我即将将它安装在专门用于 Mongo 的服务器上。
我想创建 2 个实例 - 1 个用于支持 QA 环境,另一个用于支持暂存环境。
我更熟悉可以创建多个实例的 SQL Server。
是否可以对 Mongo DB 做同样的事情,如果可以,怎么做?
我正在与 Mongo DB 合作,我是新手。我即将将它安装在专门用于 Mongo 的服务器上。
我想创建 2 个实例 - 1 个用于支持 QA 环境,另一个用于支持暂存环境。
我更熟悉可以创建多个实例的 SQL Server。
是否可以对 Mongo DB 做同样的事情,如果可以,怎么做?
上述答案不是运行多个实例的推荐方法(尤其是当服务器可能同时运行时),因为它会导致使用相同的配置参数,例如logpath和pidfilepath在大多数情况下不是你的想。
请考虑创建专用的 mongod 配置文件,例如mongod-QA.conf和mongod-STAGE.conf。在这些文件中,您可能希望提供特定于每个 mongod 实例的dbpath、logpath文件夹、bind_ip、port和pidfilepath,它们不会相互影响。
在这些步骤之后,您可以触发两个实例,如下所示
mongod --config <path-to>/mongod-QA.conf
mongod --config <path-to>/mongod-STAGE.conf
您可以在 mongodb 文档页面上找到更多详细信息
您只需要为第二个实例创建另一个文件夹(例如:mongodb2) dbpath ,并在不同的端口(例如:27018)中运行它
mongod --dbpath /usr/local/var/mongodb2 --port 27018
这是我在同一台电脑上启动 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
配置如下所示:
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 实例降低生产实例可用性的风险,可能是在最坏的时间。
在将 QA 实例与我的生产实例并置之前,我会将 QA 实例放在正在做一些不重要的事情的随机机器上。