我正在使用MongoDB,是个新手。我正准备在专门的Mongo服务器上安装它。
我想创建2个实例 - 一个用于支持QA环境,另一个用于支持Staging环境。
我更熟悉SQL Server,在那里可以创建多个实例。
是否可能在MongoDB中做到同样的事情,如果可能,怎么操作?
我正在使用MongoDB,是个新手。我正准备在专门的Mongo服务器上安装它。
我想创建2个实例 - 一个用于支持QA环境,另一个用于支持Staging环境。
我更熟悉SQL Server,在那里可以创建多个实例。
是否可能在MongoDB中做到同样的事情,如果可能,怎么操作?
前述的答案不是一种推荐的方式来运行多个实例(特别是在服务器可能同时运行时),因为它会导致使用相同的配置参数,例如logpath和pidfilepath,而这在大多数情况下并不是您想要的。
请考虑创建专用的mongod配置文件,例如mongod-QA.conf和mongod-STAGE.conf。在这些文件中,您可以提供dbpath、logpath文件夹、bind_ip、port和pidfilepath,针对每个mongod实例提供特定的设置,这样它们就不会互相影响。
完成这些步骤后,您可以按照以下方式触发两个实例:
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
mongo --port 27018
- Doctor White这是我如何在开发环境中启动4个mongod实例来模拟生产环境。
要启动mongod,您应该为每个mongod使用单独的配置文件。获取4个配置文件并使用它们启动mongod实例:
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
> db.product.save({a:1}) WriteResult({"writeError": {"code": 10107, "errmsg": "not master"}})
- Johnykutty